学习啦>学习电脑>网络知识>局域网知识>

怎么获取局域网内所有电脑的MAC地址

时间: 本达868 分享

  为方便局域网管理,以及预防病毒攻击,我们经常会需要制作局域网设备MAC地址表来比对、核查。今天,学习啦小编就给大家介绍一下利用DOS命令来实现局域网所有电脑MAC地址获取的方法

  获取局域网内所有电脑的MAC地址的方法

  一、所涉及DOS命令讲解

  1set ip=192.168.1

  set为设置环境变量命令。

  该命令将IP设置为值为“192.168.1"的参数,其中“192.168.1"为局域网网段,请根据局域网实际值修改。

  2for /l %j in (1,1,10) do echo %i

  for命令是DOS命令中一个功能十分强大的命令,在这里用到/L参数,功能是以一个增量数字集进行循环(start,step,end),即变量j初值start为1,每循环一次加增量step1,直到大于end10停止循环,每次循环执行do后面的命令。

  该命令功能对变量进行每次加1,并用echo命令显示在屏幕上。

  3ping 192.168.1.1 -n 1 -w 1000

  ping命令主要用于测试IP的连通性,-n 表示每一次ping过程发送的数据包数,-w表示每个数据包发出后等待回执的时间阀值。该命令表示对192.168.1.1的电脑进行ping测试,发1个包,回执时间超过1秒视为超时不通。如果IP地址能ping通,程序能够从应答数据包中获取该IP设备的mac地址,并存放到内存arp地址表中。

  4arp -a 192.168.1.18

  arp命令主要用于显示或修改arp地址表。-a表示显示某个或全部arp地址表。该命令表示显示IP为192.168.1.18设备的mac。

  5echo ssss|findstr dynamic

  findstr查找字符串命令,一般用于从文件中查找含个某个字符的行,这里用到“|”(管道符),即把上一个命令的输出作为下一个命令的输入。该命令表示在命令“echo ssss”输出结果中查找含有“dynamic”字符串的行。

  二、具体方法

  方法1:

  set ip=192.168.1 && for /l %j in (1,1,254) do (ping %ip%.%j -n 1 -w 1000 ) && arp -a>1.txt

  该方法适合在小IP地址范围内获取mac地址,因为如果范围过大,ping命令执行的时间会比较长,会造成早前arp地址表中获取的mac超时失效,从而无法获取局域网内完整的mac地址表。如下图,分别是上属命令运行过程中的arp表内容,前、后表对比,很容易看出,部分mac地址已经丢失,而且还存在为全0的非真MAC地址。

  方法2:

  set ip=192.168.1 && for /l %j in (1,1,254) do ( ping %ip%.%j -n 1 -w 1000 |arp -a %ip%.%j |findstr dynamic >>2.txt )

  相对方法1,该方法应该是比较完美的。在ping执行后,即时将获取的真实mac地址保存了下来。

  END

看了“怎么获取局域网内所有电脑的MAC地址”的人还看了

1.怎么查询局域网内全部电脑IP和mac地址等信息

2.怎么查看一个局域网内的ip地址

3.局域网怎么查看mac地址

4.局域网中怎么查看已分配的IP地址

5.局域网怎么设置两台电脑用一个ip地址

1665796