带有假身份或用户代理的HTTP请求

时间:2014-10-23 01:41:45

标签: http go

http.Get("http://Google.com")

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

2 个答案:

答案 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地址”来更具体地说明您的意思,并且我将更改我的答案以更好地回答该部分。