zoukankan      html  css  js  c++  java
  • 用C#获取局域网内所有机器

    原理其实很简单,在cmd.exe下面ping一下几台机,然后用arp -a命令查看一下,这种方式比开多线程去循环扫描的方式来的简单而有效。

      //首先来个循环ping一下那个网段的主机。

      //其次用以下的函数去获取所有的局域网内有响应的ip地址列表

     


     public static ArrayList GetAllLocalMachines()
      {
      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;
      p.Start(); p.StandardInput.WriteLine("arp -a");
      p.StandardInput.WriteLine("exit");
      ArrayList list = new ArrayList();
      StreamReader reader = p.StandardOutput;
      string IPHead = Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString().Substring(0, 3);
      for (string line = reader.ReadLine(); line != null; line = reader.ReadLine())
      {
      line = line.Trim(); if (line.StartsWith(IPHead) && (line.IndexOf("dynamic") != -1))
      {
      string IP = line.Substring(0, 15).Trim(); string Mac = line.Substring(line.IndexOf("-") - 2, 0x11).Trim();
      LocalMachine localMachine = new LocalMachine();
      localMachine.MachineIP = IP;
      localMachine.MachineMAC = Mac;
      localMachine.MachineName = "";
      list.Add(localMachine);
      }
      }
      return list;
      }
  • 相关阅读:
    ListView 操作
    Delphi 浏览器WebBrowser
    XE6 c++builder Edit垂直居中
    HTML 表格标签
    HTML 标签说明
    Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件
    Ubuntu 12.04下mysql的安装与配置
    Ubuntu12.04下apache服务器的安装也配置
    Ubuntu12.04下tomcat的安装与配置
    Ubuntu 12.04下jdk的安装与配置
  • 原文地址:https://www.cnblogs.com/bingyun84/p/1897280.html
Copyright © 2011-2022 走看看