调用Ping命令获取网络连接情况:
<%@import namespace="System.Diagnostics"%>
private void Submit_Click(Object sender, EventArgs e)
{
for(int i=0;i<100;i++){
Response.Write(CmdPing("172.20.185.210")+"<br>");
Response.Write(CmdPing("172.20.185.254")+"<br>");
}
}
private string CmdPing(string strIp)
{
//实例Process类,启动独立进程.
Process pro=new Process();
//设定程序名
pro.StartInfo.FileName="cmd.exe";
pro.StartInfo.UseShellExecute=false;
pro.StartInfo.RedirectStandardInput=true;
pro.StartInfo.RedirectStandardOutput=true;
pro.StartInfo.RedirectStandardError=true;
//启动进程
pro.Start();
//输入要执行命令
pro.StandardInput.WriteLine("ping -n 1 "+strIp);
pro.StandardInput.WriteLine("exit");
//从输出流获取执行结果(从流当前位置读到流末尾)
string temp=pro.StandardOutput.ReadToEnd();
//分析各种情况
string result;
//字串中含有"(0% loss)"字串
if(temp.IndexOf("(0% loss)")!=-1)
result="能连接!!";
else if(temp.IndexOf("Destination host unreachable.")!=-1)
result="无法到达目的主机";
else if(temp.IndexOf("Request timed out.")!=-1)
result="超时";
else if(temp.IndexOf("Unknown host")!=-1)
result="无法解析主机";
else
result=temp;
//释放资源,返回数据.
pro.Close();
return result;
}
得到本机或别机Mac:
//Process类位于System.Diagnostics名称空间.
<%@import namespace="System.Diagnostics"%>
<asp:button Text="Submit" OnClick="Submit_Click" runat="server"/>
private void Submit_Click(Object obj,EventArgs e){
Response.Write(GetMac("172.20.177.18"));
}
private string GetMac(string IP)
{
try{
//将使用Process类Start方法启动新程序
Process pro=new Process();
//指定启动进程时使用的一组值
pro.StartInfo.FileName="nbtstat"; //启动程序名
pro.StartInfo.Arguments="-a "+IP; //传递参数
pro.StartInfo.UseShellExecute=false;
pro.StartInfo.RedirectStandardInput=false;
pro.StartInfo.RedirectStandardOutput=true;
pro.Start();
string line="";
//如果含有"mac address",则跳出循环.
while(line.IndexOf("mac address",0)<0){
line=pro.StandardOutput.ReadLine(); //读取一行输出.
line=line.Trim().ToLower(); //去除空格并小写.
}
pro.WaitForExit();//无限期地等待关联进程退出
return line;
}
catch(Exception err){
return err.Message;
}
}