官方服务微信:dat818 购买与出租对接

如何使用Ping和ARP缓存法检测IP地址是否被占用 - 详细教程

3万

主题

2

回帖

9万

积分

管理员

积分
97530
发表于 2025-3-6 13:14:44 | 显示全部楼层 |阅读模式
    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 地址信息。

   


    前面我们看到,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 中断下

   


    图3 检测出的部分被占用的IP地址

    说明一下,第一次我检测的范围是 1 到 255,等了半天都没有反应。我觉得数量太多了,于是修改了文件,将检测范围改成了(1,199,255)。之后很快就检测完了,并且自动生成了一个 IP.txt 文件。如上图所示,所以你们不要再说不对应了。哈哈哈,209 这个 IP 是没有被占用的。

    ---------------------
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-5-3 19:58 , Processed in 0.090304 second(s), 17 queries .