c# - एचटीटीपी क्लाइंट का प्रयोग करके लाए जाने पर DNS लुकअप को कैसे रोकें
.net httpclient (1)
मेरा मानना है कि यदि आप अपने मेजबान को एक आईपी पते के रूप में निर्दिष्ट करते हैं (जैसा कि आपने किया था), तब। नेट डीएसएन लुकअप को छोड़ देगा (जीवित या मेजबान हेडर सेटिंग को छोड़कर)।
यदि आप एचटीटीपी क्लाइंट में थोड़ा सा खिसकाते हैं तो आप देखेंगे कि यह मूलतः अनुरोधों के लिए एचटीटीपी वेबबर्म का उपयोग करता है। https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClient.cs
HttpWebRequest अंततः एक क्लाइंट का उपयोग करता है जिसे सर्विसपॉइंट कहा जाता है जो एक डीएनएस कॉल करता है।
Dns.TryInternalResolve IPAddresses को हल करने का प्रयास नहीं करता है
अधिक जानकारी के लिए देखें: https://referencesource.microsoft.com/#System/net/System/Net/DNS.cs,f8023b9c19212708
मैंने यह भी सत्यापित करने की कोशिश की कि निम्नलिखित लाइनों को चलाने के लिए और नेटमोन का इस्तेमाल करते हुए अनुरोधों की निगरानी करें
using (HttpClient c = new HttpClient())
{
var response = c.GetAsync(url).Result;
}
मैंने देखा कि वास्तव में एक यूआरएल के लिए एक मेजबान नाम। नेट मुद्दा एक डीएनएस अनुरोध है, जबकि एक ipAddress के साथ एक होस्ट नाम के अनुरोध के लिए कोई डीएनसी अनुरोध नहीं है।