Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menentukan Alamat IP Sumber untuk Permintaan HTTP dalam Go?
Soalan:
Bagaimana saya boleh menentukan alamat IP sumber yang digunakan untuk permintaan HTTP dalam Pergi?
Jawapan:
Walaupun perpustakaan standard tidak secara langsung menyediakan cara untuk menetapkan alamat IP sumber untuk permintaan HTTP, anda boleh mencapainya dengan menyesuaikan klien mengangkut menggunakan pendail tersuai.
Untuk menyesuaikan alamat IP sumber, anda boleh membuat pendail tersuai dan berikannya kepada pengangkutan pelanggan. Berikut ialah contoh:
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, }
Dengan menetapkan LocalAddr dalam pendail, anda boleh menentukan alamat IP sumber untuk digunakan untuk permintaan HTTP.
Sekali anda telah mencipta klien tersuai, anda boleh menggunakannya untuk membuat permintaan HTTP:
resp, err := client.Get("http://example.com/") if err != nil { // handle error } defer resp.Body.Close() // ...
Penggunaan ini serupa dengan membuat permintaan menggunakan http.Get standard, tetapi ia membenarkan anda mengawal alamat IP sumber untuk permintaan tersebut. Ingat untuk menggantikan localAddr dengan alamat IP yang dikehendaki.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Alamat IP Sumber untuk Permintaan HTTP dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!