您的位置:首页 > 编程语言 > C#

C#获取局域网ip段

2011-12-31 11:19 876 查看
static void Main()
{
ArrayList list = GetAllLocalMachines();
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
Console.ReadKey();
}
 //首先来个循环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;//读取ip。mac。。。。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("动态") != -1)){string IP = line.Substring(0, 15).Trim(); string Mac = line.Substring(line.IndexOf("-") - 2, 0x11).Trim();list.Add(IP);}}return list;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: