यह निर्धारित करने का सबसे अच्छा तरीका क्या है कि नेटवर्क कनेक्शन उपलब्ध है या नहीं?मैं नेटवर्क कनेक्शन की जांच कैसे करूं?
उत्तर
आप .NET 2.0 में एक नेटवर्क कनेक्शन के लिए जाँच कर सकते हैं का उपयोग कर GetIsNetworkAvailable()
:
System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged
System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged
System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
NetworkChange वर्ग से घटनाओं का उपयोग नेटवर्क की उपलब्धता में आईपी पते में परिवर्तन या परिवर्तन की निगरानी करने के
चिह्नित उत्तर 100% ठीक है, हालांकि, कुछ निश्चित मामले हैं जब वर्चुअल कार्ड (वर्चुअल बॉक्स, ...) द्वारा मानक विधि बेवकूफ़ बनायी जाती है। यह अक्सर अपनी गति (धारावाहिक बंदरगाहों, मोडेम, ...) के आधार पर कुछ नेटवर्क इंटरफेस को त्यागना भी वांछनीय है।
यहाँ कोड का एक टुकड़ा है कि इन मामलों की जांच करता है है:
/// <summary>
/// Indicates whether any network connection is available
/// Filter connections below a specified speed, as well as virtual network cards.
/// </summary>
/// <returns>
/// <c>true</c> if a network connection is available; otherwise, <c>false</c>.
/// </returns>
public static bool IsNetworkAvailable()
{
return IsNetworkAvailable(0);
}
/// <summary>
/// Indicates whether any network connection is available.
/// Filter connections below a specified speed, as well as virtual network cards.
/// </summary>
/// <param name="minimumSpeed">The minimum speed required. Passing 0 will not filter connection using speed.</param>
/// <returns>
/// <c>true</c> if a network connection is available; otherwise, <c>false</c>.
/// </returns>
public static bool IsNetworkAvailable(long minimumSpeed)
{
if (!NetworkInterface.GetIsNetworkAvailable())
return false;
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
// discard because of standard reasons
if ((ni.OperationalStatus != OperationalStatus.Up) ||
(ni.NetworkInterfaceType == NetworkInterfaceType.Loopback) ||
(ni.NetworkInterfaceType == NetworkInterfaceType.Tunnel))
continue;
// this allow to filter modems, serial, etc.
// I use 10000000 as a minimum speed for most cases
if (ni.Speed < minimumSpeed)
continue;
// discard virtual cards (virtual box, virtual pc, etc.)
if ((ni.Description.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0) ||
(ni.Name.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0))
continue;
// discard "Microsoft Loopback Adapter", it will not show as NetworkInterfaceType.Loopback but as Ethernet Card.
if (ni.Description.Equals("Microsoft Loopback Adapter", StringComparison.OrdinalIgnoreCase))
continue;
return true;
}
return false;
}
यह सही है और कई अपवॉट्स के हकदार हैं - मैंने पाया कि स्वीकार्य उत्तर में उल्लिखित नेटवर्कअनुआंग चेंज किया गया ईवेंट विश्वसनीय रूप से निकाल दिया नहीं गया है, जो वर्चुअल मशीनों के अतिरिक्त चेक के लिए इस उत्तर – Marek
+1 में वर्णित वर्चुअल एडाप्टर के कारण होता है। बस कल इस मामले में भागो। लेकिन मुझे अभी भी लगता है कि यह 'हाइप-वी' को संभाल नहीं लेता है, क्योंकि उनके नाम पर 'आभासी' नहीं है। – Herdo
@ हेरडो - हाँ, कोड सही नहीं है, और मुझे नहीं लगता कि * आभासी दुनिया में कुछ भी सही हो सकता है। लेकिन आप इसे सुधार सकते हैं। –
Microsoft Windows Vista और 7 उपयोग NCSI (नेटवर्क कनेक्टिविटी स्थिति संकेतक) कलाओं:
- NCSI पर DNS लुकअप करता है www.msftncsi.com, फिर http://www.msftncsi.com/ncsi.txt का अनुरोध करता है। यह फ़ाइल एक सादा-पाठ फ़ाइल है और इसमें केवल 'माइक्रोसॉफ्ट एनसीएसआई' टेक्स्ट शामिल है।
- एनसीएसआई dns.msftncsi.com के लिए एक DNS लुकअप अनुरोध भेजता है। यह DNS पता 131.107.255.255 को हल करना चाहिए। यदि पता मेल नहीं खाता है, तो यह माना जाता है कि इंटरनेट कनेक्शन सही तरीके से काम नहीं कर रहा है।
यह बहुत अच्छा है, लेकिन तकनीकी रूप से 'नेटवर्क' की उपलब्धता के बारे में नहीं है, लेकिन अधिक 'क्या मेरे पास http के माध्यम से इंटरनेट कनेक्टिविटी है?' आपके पास सही नेटवर्क कनेक्शन हो सकते हैं लेकिन इंटरनेट से कनेक्टिविटी नहीं है, उदाहरण के लिए स्टैंड-अलोन लैन पर। अधिक जानकारी के लिए देखें ओम एनसीएसआई: http://technet.microsoft.com/en-us/library/cc766017.aspx – MichielB
नेटवर्क कनेक्शन की जांच के लिए इस विधि को कॉल करें।
public static bool IsConnectedToInternet()
{
bool returnValue = false;
try
{
int Desc;
returnValue = Utility.InternetGetConnectedState(out Desc, 0);
}
catch
{
returnValue = false;
}
return returnValue;
}
कोड के नीचे यह पंक्ति डालें।
[DllImport("wininet.dll")]
public extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
- 1. कैसे मैं धीमे नेटवर्क कनेक्शन
- 2. , मैं विशिष्टता की जांच कैसे करूं?
- 3. नेटवर्क कनेक्शन की संख्या संभव
- 4. मैं वेबस्पेयर एमक्यू कनेक्शन की स्थिति कैसे प्राप्त करूं और मैं कनेक्शन को रीसेट कैसे करूं:
- 5. डब्ल्यूसीएफ कनेक्शन की जांच करें
- 6. पर्ल में इंटरनेट कनेक्शन की उपस्थिति की जांच कैसे करें?
- 7. जावा नेटवर्क कनेक्शन के लिए त्वरित जांच करें
- 8. मैं डिस्क पर इकाई को सहेजने की जांच कैसे करूं?
- 9. मैं विकेट टेक्स्टफील्ड में शून्य मानों की जांच कैसे करूं?
- 10. मैं PHP में परिभाषित स्थिरांक की जांच कैसे करूं?
- 11. मैं सी # में दूषित टीआईएफएफ छवियों की जांच कैसे करूं?
- 12. मैं लोचदार खोज पर डुप्लिकेट डेटा की जांच कैसे करूं?
- 13. मैं जावास्क्रिप्ट में स्वरों की जांच कैसे करूं?
- 14. एंड्रॉइड में इंटरनेट कनेक्शन की उपलब्धता की जांच कैसे करें?
- 15. scheduleInRunLoop - सूत्रण नेटवर्क कनेक्शन
- 16. नेटवर्क कनेक्शन केवल केबल
- 17. आईओएस ऐप में धीमी/कम नेटवर्क की जांच कैसे करें
- 18. एसएसएच कनेक्शन की जांच के लिए बैश स्क्रिप्ट कैसे बनाएं?
- 19. मैं कनेक्शन पूलिंग में आवश्यक कनेक्शन की संख्या कैसे तय करूं?
- 20. मैं अपाचे http क्लाइंट में कनेक्शन टाइमआउट कैसे सेट करूं?
- 21. हास्केल नेटवर्क। ब्राउजर एचटीटीपीएस कनेक्शन
- 22. रेल में डीबी कनेक्शन पर मैं क्वेरी कैसे निष्पादित करूं?
- 23. मैं पाइथन HTTP क्लाइंट के नेटवर्क संचार की जांच कैसे कर सकता हूं?
- 24. मैं एंड्रॉइड में नेटवर्क कनेक्शन स्थिति की निगरानी कैसे कर सकता हूं?
- 25. मैं जीपीएस और नेटवर्क प्रदाता के बीच कैसे स्विच करूं?
- 26. मैं एक दूसरे के खिलाफ तारों की दो सूचियों की जांच कैसे करूं?
- 27. एक इंटरमीटेंट नेटवर्क कनेक्शन पर फ़ाइलों की प्रतिलिपि
- 28. कोको एप्लिकेशन में इंटरनेट कनेक्शन की जांच करें
- 29. मैं ग्रहण में वर्तनी जांच कैसे सक्षम करूं?
- 30. कंप्यूटर कनेक्शन कितने नेटवर्क कनेक्शन कर सकते हैं?
क्या यह "सीमित उपलब्धता" का ख्याल रखता है? – tofutim
यह हमेशा WPF में काम नहीं करता है। कुछ लैपटॉप झूठी वापसी करते हैं और कुछ सच लौटते हैं – krilovich
क्या यह वास्तव में काम करता है? मैंने अभी इस पंक्ति को लिखा है और अपना राउटर बंद कर दिया है और अभी भी सच हो गया है! – Mushfiq