http.Get("http://Google.com")
我想用Go发送HTTP请求。有什么方法可以手动修改我的身份吗?我希望在发送HTTP请求时拥有固定的IP地址和用户代理。
答案 0 :(得分:3)
你不能假装"你的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)
如果你有代理,你可以改为创建这样的客户端:
purl, err := url.Parse("http://444.555.666.777:8888")
client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(purl)}}
答案 1 :(得分:0)
如果你想定义用户代理,就像OneOfOne所说:
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)
关于ip部分,如果你想改变显示的ip,你将不得不使用代理。
你可以在Go方面做一些叫做ip spoofing的事情,但这会使包返回到那个地址,这可能不是你的。
尝试通过“我希望拥有固定的IP地址”来更具体地说明您的意思,并且我将更改我的答案以更好地回答该部分。