如何使用Ping和ARP缓存法检测IP地址是否被占用 - 详细教程
1.ping使用键+R 可快捷打开 cmd 命令行程序,使其进入命令行提示符状态。接着在命令行中输入“ping 你想要查看的是否被占用 ip 地址”并回车。若能 ping 通,就表明该 ip 地址对应的计算机已在线;若 ping 不通,则说明该 ip 地址未被占用。所谓 ping 的通,图示如下:209 没有被占用。
227被占用了。应该清楚了吧?
2.ARP缓存法
仅仅通过 ping 方法来判断网络中计算机的存在是不够严谨的。因为防火墙或过滤规则会导致 ping 无法返回正确信息。这意味着,即便上面 ping 不通,对方也仍有可能在线。我认为在此处,你可以进行这样的配置。如果能上网,那就应该没问题,说明没有被占用。实际上,错误率并没有那么大。我们可以借助 ARP 缓存来解决这个问题。因为防火墙或者过滤包的方式无法阻止对 ARP 的查看。远程计算机不会返回 ping 成功的消息,然而它会告知本地计算机该 IP 地址所对应的 MAC 地址。如此一来,就能够依据 ARP 缓存信息来进行查案了。如果能够看到与该 ip 地址相对应的 MAC 地址,那就意味着该计算机处于在线状态。相反,如果没有出现在 ARP 缓存表中,就表明该计算机不在线。那么具体的步骤应该怎么做呢?
用前面的 ping 方法去检测某 ip 地址的计算机是否在线,要是不通的话
在命令提示符中输入“arp -a”,以此来查看本地的 ARP 缓存列表,查看对应的 ip 是否获取到了 MAC 地址信息。
https://img1.baidu.com/it/u=1414821448,3367033880&fm=253&fmt=JPEG&app=138&f=JPEG?w=500&h=667
前面我们看到,209 这个地址是 ping 不通的。那么,我们来进行一下验证,就像图中所展示的那样:
如果没有出现 209 这个 ip 地址所对应的 MAC 地址,那就意味着这个 ip 地址没有被占用。
(3)批处理法
利用上述原理,能够通过构建批处理的方式,对局域网中在线的机器进行批量监测。比如,倘若想要查看网段 192.168.64.*里哪些地址处于在线状态,就新建一个文本文件,并在其中输入以下代码:
使用 for 循环,从 0 开始,每次递增 1,直到 255。然后对于每个循环中的值,执行 ping 命令,ping 的目标地址是 192.168.114.加上当前循环的值,并且只发送 1 个数据包。
arp -a->IP.txt
把这个文件保存成.bat 文件形式,然后双击该批处理文件,它就会自动去搜索网段里的所有 IP 地址,并且会把发现的 ARP 信息都保存到 ip.txt 文件里面。
返回 MAC 地址的 IP 所对应的计算机处于在线状态。在扫描过程中,能够通过 Ctrl+C 来进行中断操作。其结果呈现如下所示:
图1 检索过程中
图2 中断下
https://img0.baidu.com/it/u=4018093428,3397935962&fm=253&fmt=JPEG&app=138&f=JPEG?w=546&h=500
图3 检测出的部分被占用的IP地址
说明一下,第一次我检测的范围是 1 到 255,等了半天都没有反应。我觉得数量太多了,于是修改了文件,将检测范围改成了(1,199,255)。之后很快就检测完了,并且自动生成了一个 IP.txt 文件。如上图所示,所以你们不要再说不对应了。哈哈哈,209 这个 IP 是没有被占用的。
---------------------
页:
[1]