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 के साथ एक होस्ट नाम के अनुरोध के लिए कोई डीएनसी अनुरोध नहीं है।

मुझे यकीन नहीं है कि मैं सही तरीके से कर रहा हूं या नहीं

नीचे keep-alive DNS lookup से बचने के लिए झूठे सेट कर सकते हैं?

मेजबान है: tatoeba.org

यूआरएल है: http://188.213.24.161/eng/sentences/show/1

यहाँ स्क्रीनशॉट

यूआरएल ऊपर दिए गए हैं

होस्ट निम्न के रूप में सेट है





.net-4.6.2