एक "नेटवर्क उपलब्धता बदल गई" घटना है जो आग लगती है जब एक नेटवर्क कनेक्शन की "अप" स्थिति एक इंटरफ़ेस पर बदलती है जो सुरंग या लूपबैक नहीं है।
आप स्टार्टअप पर सिस्टम पर सभी नेटवर्क एडाप्टर की स्थिति पढ़ सकते हैं, "नेटवर्क उपलब्ध है" का वर्तमान मूल्य स्टोर करें, फिर इस घटना को सुनें और इस घटना को आग लगने पर अपने नेटवर्क स्टेट वैरिएबल को बदलें। ऐसा लगता है कि यह डायल-अप और आईएसडीएन कनेक्शन भी संभाल लेगा।
माना जाता है कि एनआईसी राउटर से जुड़ा हुआ है (और काम कर रहा है) लेकिन राउटर पर इंटरनेट कनेक्शन डाउन है, या रिमोट होस्ट प्रतिक्रिया नहीं दे रहा है, लेकिन यह कम से कम होगा यदि आप कोई नेटवर्क कनेक्शन शुरू करने के लिए काम नहीं कर रहे हैं, तो ऐसा करने का प्रयास करने से रोकें (उदाहरण के लिए वीपीएन या आईएसडीएन लिंक डाउन है।)
यह एक सी # कंसोल एप्लिकेशन है - इसे चालू करना शुरू करें, फिर अक्षम करें या अपने नेटवर्क कनेक्शन अनप्लग :-)
class Program
{
static bool networkIsAvailable = false;
static void Main(string[] args)
{
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface nic in nics)
{
if (
(nic.NetworkInterfaceType != NetworkInterfaceType.Loopback && nic.NetworkInterfaceType != NetworkInterfaceType.Tunnel) &&
nic.OperationalStatus == OperationalStatus.Up)
{
networkIsAvailable = true;
}
}
Console.Write("Network availability: ");
Console.WriteLine(networkIsAvailable);
NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);
Console.ReadLine();
}
static void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
networkIsAvailable = e.IsAvailable;
Console.Write("Network availability: ");
Console.WriteLine(networkIsAvailable);
}
}
स्रोत
2010-03-26 08:41:41
सभी को नमस्कार! सबसे पहले, आपके सभी उत्तरों के लिए धन्यवाद! मैं जारेरपार के लालित्य के जवाब के साथ जाऊंगा। @ डेमियन: मुझे पता है कि कई चीजें हो सकती हैं, मैं बस एक सरल करना चाहता हूं: क्या नेट कनेक्शन है? नहीं? 30 मिनट में वापस रहो। हाँ? ठीक है, चलिए अपलोड करने का प्रयास करें। दृष्टिकोण। जेरेडपार के कोड के साथ यह मुश्किल नहीं होना चाहिए। कुछ और अधिक परिष्कृत नहीं। फिर भी उत्तर के लिए धन्यवाद। @kzen: पिंगिंग वास्तव में एक अच्छा जवाब नहीं है। मैं, एक के लिए, मेरी कंपनी में आईसीएमपी अनुरोध अवरुद्ध हो गया है, इसलिए यह जांचना कि कामकाजी कनेक्शन के साथ भी असफल हो जाएगा। फिर भी धन्यवाद! – Detariael
एंडी शैलम: आपका जवाब मूल रूप से जेरेडपार के समान है, मैंने इसे केवल इसलिए नहीं चुना है क्योंकि मुझे जेरेडपार और अधिक सुरुचिपूर्ण लग रहा है। वैसे भी आपके जवाब के लिए धन्यवाद! – Detariael
ज़ीयो द्वारा एक्सेप्टेड एन्वेयर को एक में स्विच किया गया, क्योंकि इसमें लूपबैक/सुरंग शामिल हैं। – Detariael