时间:2021-05-02
一直想开发一个局域网机器管理软件,但获得局域网内的所有机器却是很困难,在网上搜索到一个简单的方法,其原理很简单,在cmd.exe下面ping一下几台机,然后用arp -aming令查看一下,这种方式比开多线程去循环扫描的方式来的简单而有效。
//首先来个循环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;}
本文源自:翔宇亭——IT乐园(http://),转载请保留此信息!声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#实现获取本地内网(局域网)和外网(公网)IP地址的方法。分享给大家供大家参考,具体如下:1、获取本机的IP地址集合://////获取本机所有i
使用工具:深度网吧辅助GHOSTforPXE1.51这款软件含有扫描局域网,在地址扫描下框填入自己的网段;扫描次数;延迟;一般给网吧做系统时都要扫描所有机器硬件
IP地址地址一样说明是在同一个网络的前提下,局域网内的机器共同使用一个ip,这样就会导致ip地址一模一样的情况出现。 局域网(LocalAreaNetwork
现在许多局域网内的机器都设置了固定IP地址,这样很容易被内部或外部的黑客探知,进而发起攻击。因此我们需要在局域网里隐藏电脑的IP地址,以保证安全。我们可以将局域
以太网和局域网的区别主要在于局域网源规模稍大,局域网内部还可以使用IEEE制定的802.3协议标准。以太网是采用EthernetII协议的局域网,局域网是根据网