दिलचस्प पोस्ट
माउस कर्सर को सी # का उपयोग कैसे करें? कैसे एक्सएमएल गुण बदलना स्थिति बार गायब नहीं होगा एपीएनएस (ऐप्पल पुश नोटिफिकेशन सर्विस) विश्वसनीयता पीढ़ी में बहुआयामी सरणी के लिए "this.that.other" जैसे डॉट सिंटैक्स को कनवर्ट करें सीएसएस चयनकर्ता "फू जिसमें बार होता है" के लिए? जीएसी में कब और कब स्थापित नहीं होंगे? मैं HTML संस्थाओं को तेजी से कैसे डीकोड कर सकता हूं? क्या सीएसएस @ मीडिया नियमों को इनलाइन रखना संभव है? दुर्बल रूप से टाइप किए गए भाषाओं के बारे में स्पष्ट विरोधाभास पर स्पष्टीकरण की मांग करना रिमोट जीआईटी रिपॉजिटरी में किए गए संशोधन को मैं कैसे संशोधित कर सकता हूं? कार्रवाई बार अतिप्रवाह आइकन दिखाने के लिए कैसे लागू करें MySQL में वैरिएबल सीमेंट सीमा पॉइंटर्स की तुलना कैसे करें? एंड्रॉइड पर कैमरे द्वारा उपयोग किए गए एक SurfaceView पर ओवरले कैसे आकर्षित करें?

जांचें कि क्या इंटरनेट कनेक्शन सी # के साथ उपलब्ध है

यह जांचने का सबसे आसान तरीका क्या है कि इंटरनेट कनेक्शन प्रोग्रामुसार उपलब्ध है?

संपादित करें: जैसा कि मैंने सुझाव दिया है कि मैं निम्नलिखित विधि का उपयोग करने की कोशिश की, लेकिन यह हमेशा सच वापस कर रहा है।

[Flags] enum InternetConnectionState : int { INTERNET_CONNECTION_MODEM = 0x1, INTERNET_CONNECTION_LAN = 0x2, INTERNET_CONNECTION_PROXY = 0x4, INTERNET_RAS_INSTALLED = 0x10, INTERNET_CONNECTION_OFFLINE = 0x20, INTERNET_CONNECTION_CONFIGURED = 0x40 } class Program { [DllImport("WININET", CharSet = CharSet.Auto)] static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved); static void Main(string[] args) { InternetConnectionState flags = 0; bool isConnected = InternetGetConnectedState(ref flags, 0); Console.WriteLine(isConnected); //Console.WriteLine(flags); Console.ReadKey(); } } 

अतिरिक्त जानकारी (यदि यह मदद करता है): मैं साझा वाईफ़ाई नेटवर्क पर इंटरनेट का उपयोग करता हूं।

वेब के समाधान से एकत्रित समाधान "जांचें कि क्या इंटरनेट कनेक्शन सी # के साथ उपलब्ध है"

यहां विंडोज एपीआई है जिसे आप कॉल कर सकते हैं। यह wininet.dll में है और InternetGetConnectedState नामक है ।

 using System; using System.Runtime; using System.Runtime.InteropServices; public class InternetCS { //Creating the extern function... [DllImport("wininet.dll")] private extern static bool InternetGetConnectedState( out int Description, int ReservedValue ); //Creating a function that uses the API function... public static bool IsConnectedToInternet( ) { int Desc ; return InternetGetConnectedState( out Desc, 0 ) ; } } 

माइक्रोसॉफ्ट विंडोज़ विस्टा और 7 एनसीएसआई (नेटवर्क कनेक्टिविटी स्थिति सूचक) तकनीकी:

एनसीएसआई http://www.msftncsi.com पर एक DNS लुकअप करता है, फिर अनुरोध http://www.msftncsi.com/ncsi.txt । यह फ़ाइल एक सादा-पाठ फ़ाइल है और इसमें केवल 'Microsoft NCSI' टेक्स्ट शामिल है एनसीएसआई dns.msftncsi.com के लिए एक डीएनएस लुकअप अनुरोध भेजता है। यह डीएनएस पता 131.107.255.255 को हल करना चाहिए। यदि पता मेल नहीं खाता है, तो यह माना जाता है कि इंटरनेट कनेक्शन सही ढंग से काम नहीं कर रहा है।

आप इस का उपयोग करके नेटवर्क्स कनेक्शन की जांच कर सकते हैं। 2.0

 System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable(); 

यह शायद सिर्फ स्थानीय नेटवर्क के लिए true होगा, इसलिए यह आपके लिए काम नहीं करेगा।

यहां तक ​​कि सबसे अच्छा उपाय मैंने पाया है:

 public static bool isConnected() { try { string myAddress = "www.google.com"; IPAddress[] addresslist = Dns.GetHostAddresses(myAddress); if (addresslist[0].ToString().Length > 6) { return true; } else return false; } catch { return false; } } 

उपयोग:

 if(isConnected()) { //im connected to the internet } else { //not connected } 

यह एक ऐसा सवाल है जहां जवाब वास्तव में "यह निर्भर करता है" है क्योंकि यह इस बात पर निर्भर करता है कि आप क्यों जांचना चाहते हैं और किस तरह की कनेक्टिविटी? क्या आप http पर कुछ वेबसाइट / सेवाओं तक पहुंचने में सक्षम होना चाहते हैं? Smtp मेल भेजें? डीएनएस लुकअप क्या है?

पिछली उत्तरों के संयोजन का इस्तेमाल करना संभवतः जाने का तरीका है – पहले किसी भी तरह का कनेक्शन उपलब्ध है या नहीं, यह जांचने के लिए कॉलिथियम के जवाब से विनइनेट एपीआई का उपयोग करें।

यदि ऐसा है, तो दो संसाधनों की तलाश करें (System.Net.Dns देखें) या तो उन संसाधनों के लिए जो आपकी दिलचस्पी रखते हैं या कुछ लोकप्रिय बड़ी वेबसाइट्स (Google, altavista, compuserve, आदि …)।

इसके बाद, आप पिंगिंग की कोशिश कर सकते हैं (रोजर विल्कोक्स का उत्तर देखें) और / या एक ही साइट्स पर एक सॉकेट कनेक्शन स्थापित कर सकते हैं। ध्यान दें कि एक असफल पिंग का मतलब यह हो सकता है कि फ़ायरवॉल नियम आपको पिंग करने की अनुमति नहीं देते हैं

यदि आप अधिक विशिष्ट क्यों हो सकते हैं कि आप क्यों यह जांचना चाहते हैं कि आपकी आवश्यकताओं को कवर करने वाला उत्तर देना आसान होगा …

सबसे आसान तरीका शायद यह जांचना है कि क्या वे उस वेब से एक फ़ाइल डाउनलोड कर सकते हैं जिसे आप जानते हैं। Google के होमपेज डाउनलोड करने के लिए निम्न कोड का उपयोग करें

 WebClient Client = new WebClient (); String Response; Response = Client.DownloadString("http://www.google.com"); 

आपको संभवत: एक कोशिश में लपेट लेना चाहिए …. उस अपवाद को पकड़ने के लिए पकड़ो जब वह कनेक्शन स्थापित नहीं कर सकता है।

Windows XP में नेटवर्क जागरूकता

विंडोज विस्टा और विंडोज 7 में नेटवर्क जागरूकता

बेशक यह गारंटी नहीं देता कि जिस वेब साइट पर आप जाने की योजना बना रहे हैं वह सहकारी फ़ायरवॉल नियमों से अवरुद्ध नहीं है, एपीआई सिर्फ यह जांच कर रही है कि कोई पूर्व-निर्धारित वेब साइट पहुंच योग्य है या नहीं ।

कुछ अन्य विकल्प भी हैं

InfoPath लाइब्रेरी "IsDestinationReachable" विधि का पर्दाफाश करता है, जो एक ही नाम के विन API विधि के लिए एक आवरण है। (ऐसा लगता है कि Vista इसका समर्थन नहीं करता है)

हालांकि, मैं डॉक्स से विश्वास करता हूं कि यह पिंग की तरह कुछ पर निर्भर करता है, इसलिए जरूरी नहीं कि एक अच्छा परीक्षण।

Vista + कहते हैं "नेटवर्क सूची प्रबंधक" का उपयोग करें

@ कोलिथियम Google डाउन नहीं हो सकता है, लेकिन DNS लॉग-आउट अंतराल समय समाप्ति से अधिक हो जाने पर भी असफल हो सकती है। एनजेड में घर पर असामान्य नहीं है, पहले प्रयास विफल हो गया है, दूसरा सफल होता है क्योंकि डाटा ने आईएसपी डीएनएस या आपके राउटर कैश में दूसरी बार अनुरोध किया जाता है।

वैकल्पिक रूप से आप इंटरनेट कनेक्टिविटी की जांच के लिए DNS लुकअप का उपयोग कर सकते हैं। यह विधि पिंग विधि की तुलना में तेज़ है।

 public static bool DnsTest() { try { System.Net.IPHostEntry ipHe = System.Net.Dns.GetHostByName("www.google.com"); return true; } catch { return false; } }