internet.go

 1package fake
 2
 3import (
 4	"net"
 5	"strings"
 6
 7	"github.com/corpix/uarand"
 8)
 9
10// UserName generates user name in one of the following forms
11// first name + last name, letter + last names or concatenation of from 1 to 3 lowercased words
12func UserName() string {
13	gender := randGender()
14	switch r.Intn(3) {
15	case 0:
16		return lookup("en", gender+"_first_names", false) + lookup(lang, gender+"_last_names", false)
17	case 1:
18		return Character() + lookup(lang, gender+"_last_names", false)
19	default:
20		return strings.Replace(WordsN(r.Intn(3)+1), " ", "_", -1)
21	}
22}
23
24// TopLevelDomain generates random top level domain
25func TopLevelDomain() string {
26	return lookup(lang, "top_level_domains", true)
27}
28
29// DomainName generates random domain name
30func DomainName() string {
31	return Company() + "." + TopLevelDomain()
32}
33
34// EmailAddress generates email address
35func EmailAddress() string {
36	return UserName() + "@" + DomainName()
37}
38
39// EmailSubject generates random email subject
40func EmailSubject() string {
41	return Sentence()
42}
43
44// EmailBody generates random email body
45func EmailBody() string {
46	return Paragraphs()
47}
48
49// DomainZone generates random domain zone
50func DomainZone() string {
51	return lookup(lang, "domain_zones", true)
52}
53
54// IPv4 generates IPv4 address
55func IPv4() string {
56	size := 4
57	ip := make([]byte, size)
58	for i := 0; i < size; i++ {
59		ip[i] = byte(r.Intn(256))
60	}
61	return net.IP(ip).To4().String()
62}
63
64// IPv6 generates IPv6 address
65func IPv6() string {
66	size := 16
67	ip := make([]byte, size)
68	for i := 0; i < size; i++ {
69		ip[i] = byte(r.Intn(256))
70	}
71	return net.IP(ip).To16().String()
72}
73
74// UserAgent generates a random user agent.
75func UserAgent() string {
76	return uarand.GetRandom()
77}