使用虚假身份或用户代理的 HTTP 请求

2 http go

http.Get("http://Google.com")
Run Code Online (Sandbox Code Playgroud)

我想用 Go 发送 HTTP 请求。有什么办法可以手动修改我的身份吗?我希望在发送 HTTP 请求时拥有固定的 IP 地址和用户代理。

One*_*One 6

你不能“伪造”你的IP,你可以在另一台主机上使用代理。

但是,您可以伪造用户代理:

client := &http.Client{}
req, err := http.NewRequest("GET", "http://google.com", nil)
req.Header.Add("User-Agent", `Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.27 Safari/537.36`)
resp, err := client.Do(req)
Run Code Online (Sandbox Code Playgroud)

如果您确实有代理,您可以像这样创建客户端:

purl, err := url.Parse("http://444.555.666.777:8888")
client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(purl)}}
Run Code Online (Sandbox Code Playgroud)