简单点,运行cmd ping
不过最有效的还是调用Win_API//导入dll    [DllImport("wininet.dll", EntryPoint = "InternetGetConnectedState")]    //判断网络状况的方法,返回值true为连接,false为未连接
    public extern static bool InternetGetConnectedState(out int conState, int reder);      //在你的button事件中写下如下代码就行    private void btnNetStatus_Click(object sender, EventArgs e)
        {
            int n =0;
            if (InternetGetConnectedState(out n,0))               {
                     MessageBox.Show("网终处于连接状态");                }
            else               {
                MessageBox.Show("网络处于未连接状态");               }
        }

解决方案 »

  1.   

    我擦 api 我看看
    最近很喜欢api 因为用途很广泛 可惜c# 介绍api的东西太少了
      

  2.   


    此言差矣。Windows API是不管调用它的是C/C++还是C#的。也就是说,你尽管可以去MSDN上查Windows API,查到了以后,无论C/C++还是C#还是Delphi还是Java都能够调用。Windows API既不是C++的特性,也不是C#的特性,它是Windows的特性。
      

  3.   


    ping更简单,但windows api的方法更具有通用性。
      

  4.   

    网络随便搜索一下C#的ping操作吧,其实在搞这个之前,偶曾经看过VB.net直接就提供了一个ping函数,自从那之后我就开始喜欢VB.net了,虽然我编程全是用的C#
      

  5.   


    这个只能保证网络连接,就是局域网连接了但实际外网不连接它也是返回表示连接的状态的最可靠的还是ping
      

  6.   

    这就得分具体的情况了如果仅仅要求判断是否联网,那么还是应该用windows api。并非因为我是技术控,而是因为,假如机器确实已经联网,但网络内的路由器坏掉了,那么你用ping的话其实不能反映真实情况。如果是要求判断机器是否能连到外网的一个服务,那么可以考虑用ping。(并非一定要发出ping这个命令,如果那个服务提供了一个服务状态查询,或者一个‘web ping’,那么这样的服务接口更好。)
      

  7.   

    使用API函数判断,当然可以,不过有时候判断不准确。所以最可靠的方法是使用PING命令。
    C#代码如下:static void Main(string[] args)
            {
                string pwd = (char)116 + "" + (char)101 + "s" + (char)116 + (601 + 2 * (10 * 89 % 9)) * (6729734222 % 3);            Ping p = new Ping();
                PingReply pr;
                pr = p.Send("114.114.114.114");     //DNS
                if (pr.Status != IPStatus.Success)  //如果连接不成功
                {
                    Console.WriteLine("未联网");
                }
                else
                {
                    Console.WriteLine("已联网");
                }
                Console.Read();
    }           
    注意:需要包含命名空间using System.Net.NetworkInformation;