internet.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package gofakeit
  2. import (
  3. "fmt"
  4. "math/rand"
  5. "strings"
  6. )
  7. // DomainName will generate a random url domain name
  8. func DomainName() string {
  9. return strings.ToLower(JobDescriptor()+BS()) + "." + DomainSuffix()
  10. }
  11. // DomainSuffix will generate a random domain suffix
  12. func DomainSuffix() string {
  13. return getRandValue([]string{"internet", "domain_suffix"})
  14. }
  15. // URL will generate a random url string
  16. func URL() string {
  17. url := "http" + RandString([]string{"s", ""}) + "://www."
  18. url += DomainName()
  19. // Slugs
  20. num := Number(1, 4)
  21. slug := make([]string, num)
  22. for i := 0; i < num; i++ {
  23. slug[i] = BS()
  24. }
  25. url += "/" + strings.ToLower(strings.Join(slug, "/"))
  26. return url
  27. }
  28. // HTTPMethod will generate a random http method
  29. func HTTPMethod() string {
  30. return getRandValue([]string{"internet", "http_method"})
  31. }
  32. // IPv4Address will generate a random version 4 ip address
  33. func IPv4Address() string {
  34. num := func() int { return 2 + rand.Intn(254) }
  35. return fmt.Sprintf("%d.%d.%d.%d", num(), num(), num(), num())
  36. }
  37. // IPv6Address will generate a random version 6 ip address
  38. func IPv6Address() string {
  39. num := 65536
  40. return fmt.Sprintf("2001:cafe:%x:%x:%x:%x:%x:%x", rand.Intn(num), rand.Intn(num), rand.Intn(num), rand.Intn(num), rand.Intn(num), rand.Intn(num))
  41. }
  42. // Username will genrate a random username based upon picking a random lastname and random numbers at the end
  43. func Username() string {
  44. return getRandValue([]string{"person", "last"}) + replaceWithNumbers("####")
  45. }