方法一:调用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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我