自訂HTTP 要求的IP 選擇
Go 中HTTP 請求的標準函式庫沒有明確指定用於傳出請求的來源IP 位址。這就提出了一個問題:我們是否可以手動指定此類請求的 IP 位址?
解決方案
是的,我們可以在 Client's Transport 中設定一個自訂 Dialer 來控制用於 HTTP 請求的 IP 位址。操作方法如下:
// Create a transport like http.DefaultTransport, but with a specified localAddr transport := &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, LocalAddr: localAddr, // Set the desired local address here DualStack: true, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, } // Create an HTTP client with the custom transport client := &http.Client{ Transport: transport, }
透過將 LocalAddr 指派給撥號器,您可以指定將用於透過該用戶端發出的 HTTP 請求的來源 IP 位址。這可讓您控制將公開給目標伺服器的 IP 位址,從而在管理 IP 信譽或路由注意事項方面提供靈活性。
以上是如何在Go中為HTTP請求指定自訂來源IP位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!