有没有方法判断用户是否联网?
我现在用的是ping baidu.com返回流来判断,应该有别的方法吧?

解决方案 »

  1.   

    public partial class Form1 : Form
    {
            //判断网络连接
            [DllImport("wininet")]
            private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue);
            ///<summary>
            /// 检测本机的网络连接
            ///</summary>
     
           private void button1_Click(object sender, EventArgs e)
            {
                //判断是否联网
                    int i = 0;
                    if (InternetGetConnectedState(out i, 0))
                    {
                        //联网
                        MessageBox.Show("Thylx提醒您:你的计算机已连接到网络上!");
                     }
                     else
                      {
                         //断网
                         MessageBox.Show("Thylx提醒您:本地连接已断开!");
                      }
            }
      

  2.   

    严格地说没有办法。包括你ping baidu的办法,其实也不行。因为我完全可以在内网模拟出一切,使得你觉得我在网上。事实上代理服务器就是这个原理。你能通过代理服务器上网,算能上网么?不好界定。反之,你连不上baidu也未必就是不能上网,也可能是baidu的服务器挂了,虽然几率很低。不严格地说,你连下外网某个网站即可,你的办法就很好。
      

  3.   

    DllImport所在的名字空间 using System.Runtime.InteropServices;
    谢谢,可以用,要添加上面这个命名空间