有了输出结果,那还有什么好说的,分析strRst字符串就可以知道网络的连接情况了。
下面是一个完整的程序,当然对Ping.exe程序执行的结果不全,读者可以进一步修改
完整代码如下:
| using System; using System.Diagnostics; namespace ZZ { class ZZConsole { [STAThread] static void Main(string[] args) { string ip = "192.192.132.229"; string strRst = CmdPing(ip); Console.WriteLine(strRst); Console.ReadLine(); } private static string CmdPing(string strIp) { Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; string pingrst; p.Start(); p.StandardInput.WriteLine("ping -n 1 "+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; } } } |

