如何设置用于 HTTP 请求的 IP?

我不知道这是否可能,因为 std lib 没有说明有关当前使用的地址的任何信息:


http://golang.org/pkg/net/http/


resp, err := http.Get("http://example.com/")

if err != nil {

    // handle error

}

defer resp.Body.Close()

body, err := ioutil.ReadAll(resp.Body)

我想要做的是为那个 http 请求设置源地址,为什么?因为我不想将我的主要 IP 地址用于那种东西......


呼啦一阵风
浏览 237回答 1
1回答

素胚勾勒不出你

您可以在客户端的传输中设置自定义拨号程序。// Create a transport like http.DefaultTransport, but with a specified localAddrtransport := &http.Transport{    Proxy: http.ProxyFromEnvironment,    DialContext: (&net.Dialer{        Timeout:   30 * time.Second,        KeepAlive: 30 * time.Second,        LocalAddr: localAddr,        DualStack: true,    }).DialContext,    MaxIdleConns:          100,    IdleConnTimeout:       90 * time.Second,    TLSHandshakeTimeout:   10 * time.Second,    ExpectContinueTimeout: 1 * time.Second,}client := &http.Client{    Transport: transport,}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go