Go HTTP 클라이언트에서 IPv4/IPv6 사용 시행
Go에서 http.Client는 네트워크 연결을 처리하는 HTTP 요청에 대한 전송을 제공합니다. . 클라이언트가 IPv4 또는 IPv6를 독점적으로 사용하도록 하려면 사용자 정의 전송 구현 내에서 DialContext 기능을 활용하십시오.
수정된 전송 조각은 오류를 반환하여 IPv6 전용 도메인을 감지하는 것을 목표로 합니다. IPv4 연결을 설정하려고 시도하는 경우.
<code class="go">type MyTransport struct { http.Transport Dialer net.Dialer } func (t *MyTransport) DialContext(ctx context.Context, network, address string) (net.Conn, error) { if network == "ipv4" { return nil, errors.New("IPv4 not permitted") } return t.Dialer.DialContext(ctx, network, address) }</code>
사용자 정의 전송을 사용하려면 http.Client 개체를 인스턴스화합니다.
<code class="go">myClient := http.Client{ Transport: &MyTransport{ Dialer: net.Dialer{ DualStack: false, // Disable IPv4/IPv6 dual-stack }, }, }</code>
DualStack을 false로 설정하면 다이얼러는 IPv4 연결을 허용하지 않습니다. 이 수정으로 인해 클라이언트는 IPv6 전용 연결을 사용하게 됩니다.
수정된 전송을 사용하여 설정된 연결은 일반 연결처럼 작동합니다. 닫는 작업은 기본 HTTP 클라이언트에서 관리되므로 수동으로 처리할 필요가 없습니다.
위 내용은 Go HTTP 클라이언트에서 IPv4 또는 IPv6 사용을 적용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!