HTTP क्लाइंट के आईपी पते को कैसे प्रतिबंधित करें
गो का http.क्लाइंट कुशल HTTP अनुरोधों को सक्षम करता है, लेकिन आप इसके आईपी पते को कैसे प्रतिबंधित करते हैं यदि आपका सिस्टम में एकाधिक एनआईसी हैं?
आईपी बाइंडिंग को अनुकूलित करना
http.क्लाइंट को एक विशिष्ट आईपी से बांधने के लिए, नेट.ट्रांसपोर्ट के उदाहरण के साथ इसके ट्रांसपोर्ट फ़ील्ड को संशोधित करें। यह आपको कनेक्शन के लिए स्थानीय पते को नियंत्रित करने के लिए नेट.डायलर को नामित करने की अनुमति देता है।
कोड उदाहरण
नीचे दिया गया कोड स्निपेट दर्शाता है कि क्लाइंट को किसी निर्दिष्ट से कैसे जोड़ा जाए स्थानीय आईपी पता:
import (
"net"
"net/http"
"net/http/httputil"
"time"
)
func main() {
// Resolve the local IP address
localAddr, err := net.ResolveIPAddr("ip", "")
if err != nil {
panic(err)
}
// Create a TCPAddr instance to specify the local address without specifying a port
localTCPAddr := net.TCPAddr{
IP: localAddr.IP,
}
// Create an HTTP client with a custom transport that specifies the local address
webclient := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: (&net.Dialer{
LocalAddr: &localTCPAddr,
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
DualStack: true,
}).DialContext,
MaxIdleConns: 100,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 10 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
},
}
// Execute an HTTP request using the customized client
req, _ := http.NewRequest("GET", "http://www.google.com", nil)
resp, _ := webclient.Do(req)
defer resp.Body.Close()
// Optionally, use httputil to get the status code and response body
code, _ := httputil.DumpResponse(resp, true)
fmt.Println(code)
}
इस दृष्टिकोण का उपयोग करके, आप HTTP क्लाइंट के कनेक्शन द्वारा उपयोग किए गए आईपी पते को निर्दिष्ट कर सकते हैं। यह आपको नेटवर्किंग लचीलेपन के लिए आउटगोइंग आईपी को नियंत्रित करने की अनुमति देता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3