在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中文網其他相關文章!