文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>用C#获取局域网内所有机器

用C#获取局域网内所有机器

时间:2010-09-30  来源:※森林小居※

原理其实很简单,在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;
  }
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载