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

前端技术 2023/09/07 C#

方法一:调用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(\"失败\");
  }

本文地址:https://www.stayed.cn/item/17594

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。