日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
打點(diǎn)統(tǒng)計(jì)——2(批量生成隨機(jī)日志樣本)

run.go:

創(chuàng)新互聯(lián)專注于嵩縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供嵩縣營銷型網(wǎng)站建設(shè),嵩縣網(wǎng)站制作、嵩縣網(wǎng)頁設(shè)計(jì)、嵩縣網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造嵩縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供嵩縣網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

package main

import (
    "./uas"
    "flag"
    "math/rand"
    "net/url"
    "os"
    "strconv"
    "strings"
    "time"
)

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 - - [14/Apr/2019:20:07:42 +0800] \"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
}

//隨機(jī)
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 main() {

    total := flag.Int("total", 100, "創(chuàng)建多少行日志")
    filePath := flag.String("filePath", "F:/phpStudy/PHPTutorial/nginx/logs/access.log", "日志文件路徑")
    //想生效還要調(diào)用解析方法
    flag.Parse()
    //fmt.Println(*total, *filePath)

    //構(gòu)造出真實(shí)的網(wǎng)站url集合
    res := ruleResource()
    list := buildUrl(res)

    //按照要求,生成$total行日志內(nèi)容
    logStr := ""
    for i := 1; i <= *total; i++ {
        //隨機(jī)選
        currentUrl := list[randInt(0, len(list)-1)]
        referUrl := list[randInt(0, len(list)-1)]
        ua := uas.UaList[randInt(0, len(uas.UaList)-1)]
        logStr = logStr + makeLog(currentUrl, referUrl, ua) + "\n"
        //和隨機(jī)種子一樣的間隔,盡可能保證隨機(jī)性
        time.Sleep(time.Nanosecond)
    }
    //放到循環(huán)外一次寫入
    fd, _ := os.OpenFile(*filePath, os.O_RDWR|os.O_APPEND, 0644 )
    fd.Write([]byte(logStr))
    fd.Close()
}

uas.go(各種瀏覽器信息):

package uas

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",
}

運(yùn)行程序(隨機(jī)生成10000條日志):

go run run.go --total=10000 --filePath="F:/phpStudy/PHPTutorial/nginx/logs/access.log"


當(dāng)前標(biāo)題:打點(diǎn)統(tǒng)計(jì)——2(批量生成隨機(jī)日志樣本)
網(wǎng)站地址:http://www.dlmjj.cn/article/pesdjo.html