首頁 >後端開發 >Golang >如何在 Go 中覆寫 HTTP 請求的來源 IP 位址?

如何在 Go 中覆寫 HTTP 請求的來源 IP 位址?

DDD
DDD原創
2024-12-30 08:48:12815瀏覽

How to Override the Source IP Address for HTTP Requests in Go?

在Go 中覆蓋HTTP 請求的IP 位址

在Go 中,net/http 套件使用預設的IP 位址來簡化HTTP 請求。系統。但是,在某些情況下,您可能更願意為此類要求指定自訂 IP 位址。本文示範如何使用 Dialer 配置來實現此目的。

挑戰源自於缺乏有關 http 函式庫使用的目前位址的文件。要指定 HTTP 請求的來源位址,我們必須在客戶端的 Transport 中自訂 Dialer。

這是如何完成的:

// Establish a transport similar to http.DefaultTransport, but with a custom local address
transport := &http.Transport{
    Proxy: http.ProxyFromEnvironment,
    DialContext: (&net.Dialer{
        Timeout:   30 * time.Second,
        KeepAlive: 30 * time.Second,
        LocalAddr: localAddr, // Specify the desired local IP address
        DualStack: true,
    }).DialContext,
    MaxIdleConns:          100,
    IdleConnTimeout:       90 * time.Second,
    TLSHandshakeTimeout:   10 * time.Second,
    ExpectContinueTimeout: 1 * time.Second,
}

// Create an HTTP client using the custom transport
client := &http.Client{
    Transport: transport,
}

透過以這種方式配置Dialer, LocalAddr 參數指定自訂IP 位址,該位址將用作客戶端發出的所有HTTP 請求的來源位址。

以上是如何在 Go 中覆寫 HTTP 請求的來源 IP 位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn