检测某网段IP地址使用情况

虽然Ping未返回值,但是同样发生了一次地址解析,也就是说ARP协议同样工作了一次,大家都知道IP地址工作在OSI七层参考模型的第三层,而ARP协议是工作在第二层的。因此即使对方过滤了ICMP包,同样可以获取对方网卡的MAC地址。也就是说只要能获取对方网卡的MAC地址,则说明该IP地址已经被使用了。

  第一步:同样是先Ping想要查看的IP地址。

  第二步:Ping结束后,使用Arp –a命令查看本机的ARP缓存(如图5)。

  

  图 5

  从上图中可以看出,首先Ping目标IP地址时,显示超时,但通过Arp命令查看ARP缓存时,可以查看到目标IP地址所对应的MAC地址,则说明该IP地址已经被占用。

  很明显如果使用该方法需要一次一次的Ping,然后再执行ARP命令,显然很麻烦,工作量太大,不过我们可以使用命令行提示符状态的For循环命令让这一过程自动执行,而我们只要一个结果就行了。

  这里最主要的是用到For命令的“/L”参数,该命令的具体语法如下:

  FOR /L %variable IN (start,step,end) DO command [command-parameters]

  该集表示以增量形式从开始到结束的一个数字序列。

  因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。

  根据语法,我们需要执行的命令为:FOR /L %i IN (0,1,255) Do ping 192.168.1.%i

  其中“192.168.1.%i”需要根据自己的网段进行修改,然后再将ARP命令执行的结果导出到某一文本文件即可。另外如果想做成批处理文件的话,需要做一点小的修改,即定义变量要用“%%i”的形式,最终的批处理文件内容如下:

以下是引用片段:
  FOR /L %%i IN (0,1,255) Do ping 192.168.1.%%i
  Arp –a >arp-mac.txt
  执行该批处理命令后,会自动依次Ping该网段内的所有IP地址(如图6),并将最后ARP命令执行的结果返回到arp-mac.txt文本文件中。

  

  图 6

  小提示:

  1.默认情况下Ping会发送四次数据包,等整个网段都Ping完,显然时间会比较长,因此可以在第一条命令后面再加上“n 1”参数表示每次只发送一次数据包。

  2.批处理文件不能以“Ping”、“Arp”等DOS命令命名,否则在执行的过程中,可能会出错。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值