Kiểm tra trạng thái kết nối Internet C#


Cách 1: Dùng API
+ Vào menu Project\Add Class... để tạo class InternetConnection
+ Import namespace: 
using System.Runtime.InteropServices;
+ Class InternetConnection có 2 phương thức sau:


code

  1. class InternetConnection
  2.     {
  3.         [DllImport("wininet.dll")]
  4.         private extern static bool InternetGetConnectedState(out int description, int reservedValue);
  5.         public static bool IsConnectedToInternet()
  6.         {
  7.             int desc;
  8.             return InternetGetConnectedState(out desc, 0);
  9.         }
  10.     }


+ Thụ lý tình huống Click của button1 như sau:
Code

  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             if (InternetConnection.IsConnectedToInternet())
  4.             {
  5.                 MessageBox.Show("Tình trạng kết nối: OK!");
  6.             }
  7.             else
  8.             {
  9.                 MessageBox.Show("Tình trạng kết nối: Mất!");
  10.             }
  11.         }


Cách 2: Kiểm tra kết nối Internet bằng cách ping đến 1 host trên internet. Chúng ta tạo phương thức sau trong Project vừa tạo. Chú ý: nhớ using System.Net.NetworkInformation; để sử dụng class Ping.

CODE

  1. public bool IsConnectedToInternet(string host)
  2.         {
  3.             Ping p = new Ping();
  4.             try
  5.             {
  6.                 PingReply pr = p.Send(host, 3000);
  7.                 if (pr.Status == IPStatus.Success)
  8.                 {
  9.                     return true;
  10.                 }
  11.             }
  12.             catch (Exception)
  13.             {
  14.  
  15.                
  16.             }
  17.             return false;
  18.         }


Cuối cùng, thụ lý tình huống Click của button1 như sau:

CODE

  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             if (IsConnectedToInternet("caulacbovb.com"))
  4.             {
  5.                 MessageBox.Show("Tình trạng kết nối: OK!");
  6.             }
  7.             else
  8.             {
  9.                 MessageBox.Show("Tình trạng kết nối: Mất!");
  10.             }
  11.         }

Share this

Previous
Next Post »