代码拉取完成,页面将自动刷新
package log
import (
"math/rand"
"net/url"
"strconv"
"strings"
"time"
)
var UaList = []string{
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;",
" Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv,2.0.1) Gecko/20100101 Firefox/4.0.1",
"Mozilla/5.0 (Windows NT 6.1; rv,2.0.1) Gecko/20100101 Firefox/4.0.1",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4094.1 Safari/537.36",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
"Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10",
}
var infoType = []string{"info", "warning", "error"}
type resource struct {
url string
target string
start int
end int
}
func ruleResource() []resource {
var res []resource
//首页
r1 := resource{
url: "http://localhost/",
target: "",
start: 0,
end: 0,
}
//列表页
r2 := resource{
url: "http://localhost/list/{$id}.html",
target: "{$id}",
start: 1,
end: 21,
}
//详情页
r3 := resource{
url: "http://localhost/movie/{$id}.html",
target: "{$id}",
start: 1,
end: 12924,
}
res = append(res, r1, r2, r3)
return res
}
func buildUrl(res []resource) []string {
var list []string
for _, resItem := range res {
if len(resItem.target) == 0 {
list = append(list, resItem.url)
} else {
for i := resItem.start; i <= resItem.end; i++ {
urlStr := strings.Replace(resItem.url, resItem.target, strconv.Itoa(i), -1)
list = append(list, urlStr)
}
}
}
return list
}
func makeLog(current, refer, ua string) string {
u := url.Values{}
u.Set("time", "1")
u.Set("url", current)
u.Set("refer", refer)
u.Set("ua", ua)
paramsStr := u.Encode()
logTemplate := "127.0.0.1 - - \"OPTIONS /dig?{$paramsStr} HTTP/1.1\" 499 0 \"-\" \"{$ua}\" \"-\""
log := strings.Replace(logTemplate, "{$paramsStr}", paramsStr, -1)
log = strings.Replace(log, "{$ua}", ua, -1)
return log
}
//随机
func randInt(min, max int) int {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
if min > max {
return max
}
return r.Intn(max-min) + min
}
func GetLogInfo() (logStr ContainerLog) {
res := ruleResource()
list := buildUrl(res)
currentUrl := list[randInt(0, len(list)-1)]
referUrl := list[randInt(0, len(list)-1)]
ua := UaList[randInt(0, len(UaList)-1)]
logStr.Msg = makeLog(currentUrl, referUrl, ua)
logStr.Type = infoType[randInt(0, 2)]
return
}
func Types() []string {
types := make([]string,len(infoType))
copy(types,infoType)
return types
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。