| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package gofakeit
- import "strconv"
- // UserAgent will generate a random broswer user agent
- func UserAgent() string {
- randNum := randIntRange(0, 4)
- switch randNum {
- case 0:
- return ChromeUserAgent()
- case 1:
- return FirefoxUserAgent()
- case 2:
- return SafariUserAgent()
- case 3:
- return OperaUserAgent()
- default:
- return ChromeUserAgent()
- }
- }
- // ChromeUserAgent will generate a random chrome browser user agent string
- func ChromeUserAgent() string {
- randNum1 := strconv.Itoa(randIntRange(531, 536)) + strconv.Itoa(randIntRange(0, 2))
- randNum2 := strconv.Itoa(randIntRange(36, 40))
- randNum3 := strconv.Itoa(randIntRange(800, 899))
- return "Mozilla/5.0 " + "(" + randomPlatform() + ") AppleWebKit/" + randNum1 + " (KHTML, like Gecko) Chrome/" + randNum2 + ".0." + randNum3 + ".0 Mobile Safari/" + randNum1
- }
- // FirefoxUserAgent will generate a random firefox broswer user agent string
- func FirefoxUserAgent() string {
- ver := "Gecko/" + Date().Format("2006-02-01") + " Firefox/" + strconv.Itoa(randIntRange(35, 37)) + ".0"
- platforms := []string{
- "(" + windowsPlatformToken() + "; " + "en-US" + "; rv:1.9." + strconv.Itoa(randIntRange(0, 3)) + ".20) " + ver,
- "(" + linuxPlatformToken() + "; rv:" + strconv.Itoa(randIntRange(5, 8)) + ".0) " + ver,
- "(" + macPlatformToken() + " rv:" + strconv.Itoa(randIntRange(2, 7)) + ".0) " + ver,
- }
- return "Mozilla/5.0 " + RandString(platforms)
- }
- // SafariUserAgent will generate a random safari browser user agent string
- func SafariUserAgent() string {
- randNum := strconv.Itoa(randIntRange(531, 536)) + "." + strconv.Itoa(randIntRange(1, 51)) + "." + strconv.Itoa(randIntRange(1, 8))
- ver := strconv.Itoa(randIntRange(4, 6)) + "." + strconv.Itoa(randIntRange(0, 2))
- mobileDevices := []string{
- "iPhone; CPU iPhone OS",
- "iPad; CPU OS",
- }
- platforms := []string{
- "(Windows; U; " + windowsPlatformToken() + ") AppleWebKit/" + randNum + " (KHTML, like Gecko) Version/" + ver + " Safari/" + randNum,
- "(" + macPlatformToken() + " rv:" + strconv.Itoa(randIntRange(4, 7)) + ".0; en-US) AppleWebKit/" + randNum + " (KHTML, like Gecko) Version/" + ver + " Safari/" + randNum,
- "(" + RandString(mobileDevices) + " " + strconv.Itoa(randIntRange(7, 9)) + "_" + strconv.Itoa(randIntRange(0, 3)) + "_" + strconv.Itoa(randIntRange(1, 3)) + " like Mac OS X; " + "en-US" + ") AppleWebKit/" + randNum + " (KHTML, like Gecko) Version/" + strconv.Itoa(randIntRange(3, 5)) + ".0.5 Mobile/8B" + strconv.Itoa(randIntRange(111, 120)) + " Safari/6" + randNum,
- }
- return "Mozilla/5.0 " + RandString(platforms)
- }
- // OperaUserAgent will generate a random opera browser user agent string
- func OperaUserAgent() string {
- platform := "(" + randomPlatform() + "; en-US) Presto/2." + strconv.Itoa(randIntRange(8, 13)) + "." + strconv.Itoa(randIntRange(160, 355)) + " Version/" + strconv.Itoa(randIntRange(10, 13)) + ".00"
- return "Opera/" + strconv.Itoa(randIntRange(8, 10)) + "." + strconv.Itoa(randIntRange(10, 99)) + " " + platform
- }
- // linuxPlatformToken will generate a random linux platform
- func linuxPlatformToken() string {
- return "X11; Linux " + getRandValue([]string{"computer", "linux_processor"})
- }
- // macPlatformToken will generate a random mac platform
- func macPlatformToken() string {
- return "Macintosh; " + getRandValue([]string{"computer", "mac_processor"}) + " Mac OS X 10_" + strconv.Itoa(randIntRange(5, 9)) + "_" + strconv.Itoa(randIntRange(0, 10))
- }
- // windowsPlatformToken will generate a random windows platform
- func windowsPlatformToken() string {
- return getRandValue([]string{"computer", "windows_platform"})
- }
- // randomPlatform will generate a random platform
- func randomPlatform() string {
- platforms := []string{
- linuxPlatformToken(),
- macPlatformToken(),
- windowsPlatformToken(),
- }
- return RandString(platforms)
- }
|