1.ping
windows键+R 快捷打开cmd命令行程序,进入命令行提示符状态,在命令行中输入“ping 你想要查看的是否被占用ip地址”回车。如果ping得通,则说明该ip地址对应的计算机已经在线,否则,说明未被占用。什么叫ping的通呢?图示如下:209没有被占用
227被占用了。应该清楚了吧?
2.ARP缓存法
如果仅仅通过ping方法来判断网络中计算机的存在是不太严谨的,因为防火墙或者过滤规则,会使ping无法返回正确的信息,也就是说,即使上面ping不通,对方也仍然可能会在线。我觉得在这里,你可以用这个配置一下,如果能上网,应该就可以了。说明没有被占用。因为错误率其实也没那么大。那么,我们可以通过ARP缓存解决这个问题。因为防火墙或者过滤包的方法也无法禁止ARP的查看。远程计算机不返回ping成功的消息,但会告诉本地计算机该ip地址对应的MAC地址。这样就可以通过ARP缓存信息来查案了。如果能看到该ip地址对应的MAC地址,说明该计算机在线,相应的,没有出现在ARP缓存表中则表明该计算机不在线。那么具体步骤如何做呢?
(1)按照前面的ping方法来检测某ip地址的计算机是否在线,如果不通
(2)在命令提示符中输入“arp -a”来查看本地ARP缓存列表,看对应的ip是否得到了MAC地址信息。
前面看到。209地址是ping不通的,那我们来验证一下,如图所示:
未出现209这个ip地址对应的MAC地址,则说明该ip地址未被占用。
(3)批处理法
利用上述原理,可以通过建立批处理的办法,批量监测局域网中在线的机器。例如,如果要查看网段192.168.64.*中有哪些地址在线,新建一个文本文件,输入下面的代码:
FOR /L %%i IN(0,1,255)Do ping 192.168.114./%%i -n 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是没有被占用的。
---------------------
作者:siyuetian1943
来源:CSDN
原文:https://blog.csdn.net/u011878191/article/details/42427201
版权声明:本文为博主原创文章,转载请附上博文链接!