بررسی اینترنت در سی شارپ
سلام توسعه دهندگان گرامی در این سری از آموزش برنامه نویسی سی شارپ (c#) به آموزش بررسی اینترنت در سی شارپ می پردازیم خیلی مواقع پیش می آید که ابتدا لازم باشد بررسی کنیم اینترنت وجود دارد یا خیر یا اصلا سپس یک کار یا عملی انجام گیرد در ادامه چند راه مختلف را بررسی خواهیم کرد با ما همراه باشید.
اگر بخواهیم بررسی کنیم کابل اینترنتی متصل هست یا خیر می توانیم از کد زیر استفاده کنیم.
1 2 3 4 5 6 7 | [System.Runtime.InteropServices.DllImport("wininet.dll")] private extern static bool InternetGetConnectedState(out int Description, int ReservedValue); public static bool CheckNet() { int desc; return InternetGetConnectedState(out desc, 0); } |
راه بعد ping کردن یک url است همانند زیر
1 2 3 4 5 6 7 8 9 10 11 12 | try { Ping myPing = new Ping(); String host = "google.com"; byte[] buffer = new byte[32]; int timeout = 1000; PingOptions pingOptions = new PingOptions(); PingReply reply = myPing.Send(host, timeout, buffer, pingOptions); return (reply.Status == IPStatus.Success); } catch (Exception) { return false; } |
در بالا به Google عملیات ping انجام می پذیر اگر درست انجام شود مقدار true و در غیر اینصورت وارد متد catch شده و مقدار false بر می گردد.
از دستور Ping به شکل زیر نیز می توانید استفاده کنید.
1 | new Ping().Send("www.google.com.mx").Status == IPStatus.Success |
امکان بررسی با استفاده از HttpRequest نیز میسر است همانند زیر
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var request = (HttpWebRequest)WebRequest.Create("http://g.cn/generate_204"); request.UserAgent = "Android"; request.KeepAlive = false; request.Timeout = 1500; using (var response = (HttpWebResponse)request.GetResponse()) { if (response.ContentLength == 0 && response.StatusCode == HttpStatusCode.NoContent) { //Connection to internet available } else { //Connection to internet not available } } |
کد زیر هم کار جالبی انجام میدهد اگر url مورد نظر در دسترس باشد مقدار success را بر می گرداند در غیر اینصورت اگر مقدار برنگردد یعنی کاربر آفلاین است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | public static bool CheckForInternetConnection() { try { using (var webClient = new WebClient()) using (var stream = webClient.OpenRead("http://captive.apple.com/hotspot-detect.html")) { if (stream != null) { //return true; stream.ReadTimeout = 1000; using (var reader = new StreamReader(stream, Encoding.UTF8, false)) { string line; while ((line = reader.ReadLine()) != null) { if (line == "<HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>") { return true; } Console.WriteLine(line); } } } return false; } } catch { } return false; } |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.