Menyesuaikan Pemilihan IP untuk Permintaan HTTP
Pustaka standard untuk permintaan HTTP dalam Go tidak menyatakan secara eksplisit alamat IP sumber yang digunakan untuk permintaan keluar . Ini menimbulkan persoalan: bolehkah kami menentukan alamat IP secara manual untuk permintaan sedemikian?
Penyelesaian
Ya, kami boleh menetapkan Dialer tersuai dalam Pengangkutan Pelanggan untuk mengawal Alamat IP yang digunakan untuk permintaan HTTP. Begini caranya:
// 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, }
Dengan memberikan LocalAddr kepada Dialer, anda boleh menentukan alamat IP sumber yang akan digunakan untuk permintaan HTTP yang dibuat melalui klien tersebut. Ini membolehkan anda mengawal alamat IP yang akan didedahkan kepada pelayan destinasi, memberikan fleksibiliti dalam mengurus reputasi IP atau pertimbangan penghalaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Alamat IP Sumber Tersuai untuk Permintaan HTTP dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!