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

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

Mary-Kate Olsen
Lepaskan: 2024-12-23 09:54:30
asal
332 orang telah melayarinya

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

Menyesuaikan Permintaan HTTP: Menetapkan Alamat IP Sumber

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.

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

Dengan menetapkan LocalAddr dalam pendail, anda boleh menentukan alamat IP sumber untuk digunakan untuk permintaan HTTP.

Penggunaan Contoh

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()
// ...
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan