Tạo kiểm tra trạng thái kết nối Internet trong C# bằng cách ping

Solve của bạn Duong_Act chỉ chạy đúng khi máy không có Virtual Network Interface. Bạn có thể dùng class System.Net.NetworkInformation.Ping để kiểm tra.

using System;
using System.Drawing;
using System.Net.NetworkInformation;
using System.Windows.Forms;
namespace CheckInternet
{
    public partial class Form1 : Form {
        Timer timer;
        public Form1() {
            InitializeComponent();
            timer = new Timer();
            timer.Interval = 5000;//Tự check lại mỗi 5 giây
            timer.Tick += Timer_Tick;
            timer.Start();
        }
        private async void Timer_Tick(object sender, EventArgs e)
        {
            bool status = false;
            try
            {
                Ping ping = new Ping();
                int timeout = 1000;
                string host = "google.com";
                var pingReply = await ping.SendPingAsync(host,timeout);
                status = pingReply.Status == IPStatus.Success;
            }
            catch (Exception)
            {
                status = false;
            }
            ShowNetworkConnection(status);
        }

        private void ShowNetworkConnection(bool conn) {
            if (conn) {
                lblConnect.Text = "Connected";
                lblConnect.ForeColor = Color.Green;
            } else {
                lblConnect.Text = "Disconnet";
                lblConnect.ForeColor = Color.Red;
            }
        }
    }
}

1 Like

Giải pháp của mình chỉ đúng khi mọi thứ là lý tưởng. Nghĩa là cứ có kết nối được modem là coi như xong.

Nếu biết chắc chắn kết nối được với web thì chỉ có kết nối thử với chính web đó.
Ngay cả việc ping cũng chưa chắc chắn (mặc dù tin cậy hơn) bởi ping và kết nối web sử dung các loại gói tin khác nhau, cổng khác nhau nên ngay cả việc ping rất đẹp nhưng không kết nối được.

2 Likes

Ok, cảm ơn bạn :slight_smile:


Và ping có thể không dùng được do 1 số admin “chặn” ICMP (không nên :D).

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?