調用第三方程式Ping同區域網路電腦和得到其Mac

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.