C#获取网络状态两种方式
第一种
/// <summary>
/// 获取网络状态
/// </summary>
/// <param name="IP"></param>
/// <returns></returns>
public static bool CheckedIPSpeed(string IP)
{
//远程服务器IP
string ipStr = "www.google.com";
//构造Ping实例
Ping pingSender = new Ping();
//Ping 选项设置
PingOptions options = new PingOptions();
options.DontFragment = true;
//测试数据
string data = "test data abcabc";
byte[] buffer = Encoding.ASCII.GetBytes(data);
//设置超时时间
int timeout = 2 * 1000;
//调用同步 send 方法发送数据,将返回结果保存至PingReply实例
PingReply reply = pingSender.Send(ipStr, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
return true;
//Console.WriteLine("答复的主机地址:" + reply.Address.ToString());
//Console.WriteLine("往返时间:" + reply.RoundtripTime);
//Console.WriteLine("生存时间(TTL):" + reply.Options.Ttl);
//Console.WriteLine("是否控制数据包的分段:" + reply.Options.DontFragment);
//Console.WriteLine("缓冲区大小:" + reply.Buffer.Length);
}
else
{
return false;
//Console.WriteLine(reply.Status.ToString());
}
}
第二种
public static bool CheckedIPDetail(string IP)
{
Process p = new Process(); p.StartInfo.FileName = "cmd.exe";//设定程序名
p.StartInfo.UseShellExecute = false; //关闭Shell的使用
p.StartInfo.RedirectStandardInput = true;//重定向标准输入
p.StartInfo.RedirectStandardOutput = true;//重定向标准输出
p.StartInfo.RedirectStandardError = true;//重定向错误输出
p.StartInfo.CreateNoWindow = true;//设置不显示窗口
string pingrst; p.Start(); p.StandardInput.WriteLine("ping " + IP); //主机或ip地址
p.StandardInput.WriteLine("exit");
string strRst = p.StandardOutput.ReadToEnd();
p.Close();
return strRst.Contains("100% 丢失");
}

浙公网安备 33010602011771号