調用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;
}
}