c# 操作DOS ping命令判断与指定主机是否可以通信

using System;

using System.Collections;

using System.Collections.Generic;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

using System.IO;

using System.Linq;

using System.Net;

using System.Text;

using System.Text.RegularExpressions;

using System.Threading;

using System.Timers;

using System.Xml;

using System.Xml.Linq;

using My.Common;

using System.Net.Sockets;

using System.Diagnostics;

namespace mytest

{

public class Program

{

const int SOCKET_ERROR = -1;

const int ICMP_ECHO = 8;

static void Main(string[] args)

{

string ip = "115.239.210.26";//百度IP地址

string strRst = CmdPing(ip);

Console.WriteLine(strRst);

Console.WriteLine("OK");

Console.Read();

}

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;

}

}

}