Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengatasi Alamat IP Sumber untuk Permintaan HTTP dalam Go?

Bagaimana untuk Mengatasi Alamat IP Sumber untuk Permintaan HTTP dalam Go?

DDD
Lepaskan: 2024-12-30 08:48:12
asal
833 orang telah melayarinya

How to Override the Source IP Address for HTTP Requests in Go?

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,
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan