如题

解决方案 »

  1.   

    //使用ping命令来判断,txtIP文本框输入一个有效的远程主机ip
    System.Diagnostics.Process proIP=new System.Diagnostics.Process();
    proIP.StartInfo.FileName="cmd.exe";
    proIP.StartInfo.UseShellExecute = false;
    proIP.StartInfo.RedirectStandardInput = true;
    proIP.StartInfo.RedirectStandardOutput = true;
    proIP.StartInfo.RedirectStandardError = true;
    proIP.StartInfo.CreateNoWindow = true;//不显示cmd窗口
    proIP.Start();
    proIP.StandardInput.WriteLine("ping "+this.txtIP.Text.Trim());
    proIP.StandardInput.WriteLine("exit");
    string strResult=proIP.StandardOutput.ReadToEnd();
    if(strResult.IndexOf("(0% loss)")!=-1)
    this.txtShow.Text="Ping 通了!";
    else if(strResult.IndexOf("(100% loss)")!=-1)
    this.txtShow.Text="无法 Ping 通!";
    else
    this.txtShow.Text="数据有丢失!";
    proIP.Close();
      

  2.   

    RAS...到msdn上查查api
    RasEnumConnection//枚举所有连接
    RasSetAutodialAddress//设置自动拨号
    RasDial//用程序实现拨号
      

  3.   

    参考我写的一篇文章:http://community.csdn.net/Expert/topic/3230/3230673.xml?temp=.5762293
    或者发消息告诉我你的邮箱,我下班给你发个Ras Class
      

  4.   

    再来看看用win32 API函数的做法:
    要用的函数:InternetGetConnectedState
    函数原形:BOOL InternetGetConnectedState(LPDWORD lpdwFlags,DWORD dwReserved);
    参数lpdwFlags返回当前网络状态,参数dwReserved依然是保留参数,设置为0即可。
    INTERNET_CONNECTION_MODEM 通过调治解调器连接网络
    INTERNET_CONNECTION_LAN 通过局域网连接网络
    这个函数的功能是很强的。它可以:
      1. 判断网络连接是通过网卡还是通过调治解调器
      2. 是否通过代理上网
      3. 判断连接是On Line还是Off Line
      4. 判断是否安装“拨号网络服务”
      5. 判断调治解调器是否正在使用
    这个win32 API在系统system32文件夹中winInet.dll中
    使用这个判断的话,需要在类中这样写:
    private const int INTERNET_CONNECTION_MODEM = 1;
    private const int INTERNET_CONNECTION_LAN = 2;
    [DllImport("winInet.dll")]
    private static extern bool InternetGetConnectedState(
    ref int dwFlag,
    int dwReserved
    );
    //调用的方法(Winform为例,放一个按钮,单击即可):
    private void button1_Click(object sender, System.EventArgs e){
    System.Int32 dwFlag = new int();
    if(!InternetGetConnectedState(ref dwFlag, 0))
    MessageBox.Show("未连网!");
    else
    if((dwFlag & INTERNET_CONNECTION_MODEM)!=0)
    MessageBox.Show("采用调治解调器上网。");
    else
    if((dwFlag & INTERNET_CONNECTION_LAN)!=0)
    MessageBox.Show("采用网卡上网。");
    }
    //帮你编写然后测试,上面的代码可以直接用了,困死我了呀!!