文章详情

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

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

时间:2010-09-02  来源:哈哈的笑

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

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

    //其次用以下的函数去获取所有的局域网内有响应的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

金融理财 下载