질문:
사용된 소스 IP 주소를 어떻게 지정합니까? HTTP 요청의 경우 가겠습니까?
답변:
표준 라이브러리는 HTTP 요청에 대한 소스 IP 주소를 설정하는 방법을 직접 제공하지 않지만 클라이언트의 IP 주소를 사용자 정의하여 이를 달성할 수 있습니다. 사용자 정의 다이얼러를 사용하여 전송합니다.
소스 IP를 사용자 정의하려면 주소를 사용하면 사용자 정의 다이얼러를 생성하고 이를 클라이언트의 전송에 할당할 수 있습니다. 예는 다음과 같습니다.
import ( "net" "time" "golang.org/x/net/http/httpproxy" ) // Create a custom transport with a specified local address transport := &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, LocalAddr: localAddr, // Set the desired local IP address here DualStack: true, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, } // Create the client with the customized transport client := &http.Client{ Transport: transport, }
다이얼러에서 LocalAddr을 설정하면 HTTP 요청에 사용할 소스 IP 주소를 지정할 수 있습니다.
한 번 사용자 정의 클라이언트를 만들었으면 이를 사용하여 HTTP 요청을 할 수 있습니다.
resp, err := client.Get("http://example.com/") if err != nil { // handle error } defer resp.Body.Close() // ...
이 사용법은 다음과 같습니다. 표준 http.Get을 사용하여 요청하는 것과 유사하지만 요청에 대한 소스 IP 주소를 제어할 수 있습니다. localAddr을 원하는 IP 주소로 바꾸는 것을 잊지 마세요.
위 내용은 Go에서 HTTP 요청의 소스 IP 주소를 어떻게 지정하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!