Mengatasi Alamat IP untuk Permintaan HTTP dalam Go
Dalam Go, pakej net/http memudahkan permintaan HTTP menggunakan alamat IP lalai sistem. Walau bagaimanapun, terdapat keadaan di mana anda mungkin memilih untuk menentukan alamat IP tersuai untuk permintaan tersebut. Artikel ini menunjukkan cara untuk mencapai ini menggunakan konfigurasi Dialer.
Cabaran berpunca daripada ketiadaan dokumentasi mengenai alamat semasa yang digunakan oleh perpustakaan http. Untuk menentukan alamat sumber untuk permintaan HTTP, kami mesti menyesuaikan Dialer dalam Pengangkutan Pelanggan.
Berikut ialah cara ia dilakukan:
// 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, }
Dengan mengkonfigurasi Dialer dengan cara ini, Parameter LocalAddr menentukan alamat IP tersuai yang akan digunakan sebagai alamat sumber untuk semua permintaan HTTP yang dibuat oleh klien.
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Alamat IP Sumber untuk Permintaan HTTP dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!