虽然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)。