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
Mary-Kate Olsenasal
2024-12-23 09:54:30313semak imbas

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,
}

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()
// ...

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!

Kenyataan:
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