首页 > 编程 > C# > 正文

C#使用ping命令的两个例子

2020-01-24 02:27:39
字体:
来源:转载
供稿:网友

方法一:调用cmd 的ping命令

 

private static string CmdPing(string strIp){  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 " + strIp);  p.StandardInput.WriteLine("exit");  string strRst = p.StandardOutput.ReadToEnd();    if (strRst.IndexOf("(0% loss)") != -1)  {    pingrst = "连接";  }  else if (strRst.IndexOf("Destination host unreachable.") != -1)  {    pingrst = "无法到达目的主机";  }  else if (strRst.IndexOf("Request timed out.") != -1)  {    pingrst = "超时";  }  else if (strRst.IndexOf("Unknown host") != -1)  {    pingrst = "无法解析主机";  }  else  {    pingrst = strRst;  }  p.Close();  return pingrst;}

方法二:使用C#中的ping 类

private void displayReply(PingReply reply) //显示结果{  Ping p1 = new Ping(); //只是演示,没有做错误处理    PingReply reply = p1.Send("填写ip地址");    StringBuilder sbuilder ;  if (reply.Status == IPStatus.Success)  {      sbuilder = new StringBuilder();      sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString ()));      sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));      sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));      sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));      sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));      response.write(sbuilder.ToString());  }  else if (reply.Status == IPStatus.TimeOut)    {    response.write("超时");  }else{    response.write("失败");  }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表