3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果我理解你的問(wèn)題,你想讀取文件,以某種方式檢測(cè)到該文件被修改,并有一個(gè)方法將這些修改發(fā)送到客戶端代碼。
這不是文件的工作方式。
你有兩個(gè)選擇:
使用一些操作系統(tǒng)特定的 API 監(jiān)聽文件更改?
使用無(wú)限循環(huán)讀取文件。讀取文件一次。將副本保存到內(nèi)存中。在循環(huán)中一次又一次地讀取同一個(gè)文件,直到新文件與副本不同并計(jì)算增量。
檢查是否可以使用它push
來(lái)代替pull
獲取新域。難不成控制文件域名的系統(tǒng)會(huì)直接給你推送數(shù)據(jù)?
如果loop
是唯一可能的選項(xiàng),請(qǐng)?jiān)谖募x取之間設(shè)置一些暫停時(shí)間以減少系統(tǒng)負(fù)載。

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果您想“同時(shí)”執(zhí)行此操作,您將返回一個(gè)通道,您將通過(guò)該通道發(fā)送您想要返回的多個(gè)內(nèi)容:
https://play.golang.org/p/iYBGPwfYLYR
func DomainGrab() <-chan string {
ch := make(chan string, 1)
f, _ := os.Open("domains.txt")
defer f.Close()
scanner := bufio.NewScanner(f)
go func() {
// Loop over all lines in the file and print them.
for scanner.Scan() {
line := scanner.Text()
time.Sleep(2 * time.Second)
ch <- line
}
close(ch)
}()
return ch
}

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
可能不是最好的解決方案。但是,我決定一起擺脫一個(gè)單獨(dú)的功能,以覆蓋更多領(lǐng)域。我會(huì)在下面發(fā)布我期望的代碼?,F(xiàn)在,我需要解析域,以便只掃描一次根 URL 和子域。
// Main
package main
import (
"log"
"fmt"
"time"
"net/http"
"github.com/gocolly/colly"
)
//var Domain string
var Target string
func main() {
c := colly.NewCollector()
c.OnError(func(r *colly.Response, err error) {
fmt.Println("Request URL:", r.Request.URL, "\n Failed with response:", r.StatusCode)
})
// Find and visit all links
c.OnHTML("a", func(e *colly.HTMLElement) {
e.Request.Visit(e.Attr("href"))
})
c.OnRequest(func(r *colly.Request) {
Domain := r.URL.String()
Target := BannerGrab(Domain)
fmt.Println(Domain)
fmt.Println(Target)
fmt.Println("Dropping By.. ", r.URL)
time.Sleep(1000 * time.Millisecond)
})
c.Visit("http://www.milliondollarhomepage.com/")
}
//CheckDB if not listed else add
//RiskDB
func BannerGrab(s string) string {
client := &http.Client{}
req, err := http.NewRequest("GET", s, nil)
if err != nil {
log.Fatalln(err)
}
req.Header.Set("User-Agent", "Authac/0.1")
resp, _ := client.Do(req)
serverEntry := resp.Header.Get("Server")
return serverEntry
}
- 3 回答
- 0 關(guān)注
- 176 瀏覽
添加回答
舉報(bào)