"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं एक गो HTTP क्लाइंट को एक विशिष्ट आईपी पते से कैसे जोड़ सकता हूं?

मैं एक गो HTTP क्लाइंट को एक विशिष्ट आईपी पते से कैसे जोड़ सकता हूं?

2024-11-10 को प्रकाशित
ब्राउज़ करें:253

How Can I Bind a Go HTTP Client to a Specific IP Address?

गो में एक http.क्लाइंट को एक आईपी पते से बांधना

वितरित कंप्यूटिंग के दायरे में, स्रोत आईपी को नियंत्रित करना अक्सर आवश्यक होता है वह पता जहां से HTTP अनुरोध उत्पन्न होते हैं। एक क्लाइंट मशीन पर एकाधिक एनआईसी के साथ, यह ग्रैन्युलैरिटी आवश्यक हो सकती है।

निम्नलिखित बुनियादी HTTP क्लाइंट कोड पर विचार करें:

package main

import "net/http"

func main() {
    webclient := &http.Client{}
    req, _ := http.NewRequest("GET", "http://www.google.com", nil)
    httpResponse, _ := webclient.Do(req)
    defer httpResponse.Body.Close()
}

इस क्लाइंट को एक विशिष्ट एनआईसी या आईपी पते से जोड़ने के लिए, हमें इसके ट्रांसपोर्ट फ़ील्ड को संशोधित करने की आवश्यकता है। हम एक कस्टम नेट.ट्रांसपोर्ट का उपयोग करेंगे जो एक कस्टम नेट.डायलर का उपयोग करता है। बदले में, नेट.डायलर हमें आउटगोइंग कनेक्शन के लिए स्थानीय पता निर्दिष्ट करने की अनुमति देता है।

import (
    "net"
    "net/http"
)

func main() {
    localAddr, err := net.ResolveIPAddr("ip", "")
    if err != nil {
        panic(err)
    }
    localTCPAddr := net.TCPAddr{
        IP: localAddr.IP,
    }

    webclient := &http.Client{
        Transport: &http.Transport{
            Proxy:                http.ProxyFromEnvironment,
            DialContext:          (&net.Dialer{LocalAddr: &localTCPAddr}).DialContext,
            MaxIdleConns:          100,
            IdleConnTimeout:       90 * time.Second,
            TLSHandshakeTimeout:   10 * time.Second,
            ExpectContinueTimeout: 1 * time.Second,
        },
    }
}

इस संशोधन के साथ, हमारा HTTP क्लाइंट अब निर्दिष्ट आईपी पते से जुड़ा हुआ है, यह सुनिश्चित करते हुए कि सभी आउटगोइंग अनुरोध वांछित एनआईसी से उत्पन्न होते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3