batman » 日志 » 快速查看局域网内的IP地址是否被占用
快速查看局域网内的IP地址是否被占用
Batman 发表于 2006-10-27 14:25:45
如果局域网没有使用DHCP服务器,想查看局域网内的IP地址是否被占用,用ping命令一个一个去ping太麻烦了,而且有些机器的防火墙是不允许ICMP包通过的,就不知道这个IP是否被使用。在windows系统中使用系统自带的ARP -A命令可以方便的查询。
ARP缓存法是以ping法为基础而来的,对于安装了防火墙或设置过滤规则的计算机来说直接ping该IP地址是得不到返回信息的,虽然无法从ping的返回信息中得出该IP地址是否被占用,但是从ARP缓存中却可以看出来。防火墙等过滤设置可以不容许ICMP协议返回数据包给源地址,但是由于ARP是工作在OSI模型中的第二层上的,所以在ICMP协议数据包被过滤前ARP已经通过查看MAC的方式获得了网络中在线主机的MAC地址。
只要网络中的计算机想上网,那么他一定会将自己网卡的MAC地址告诉与其连接的交换机,接下来交换机也会进一步将他知道的MAC地址信息反馈给使用ping的主机。这样我们在使用ping的主机上就能够通过是否获得MAC地址的方式来了解该IP地址对应的计算机是否在线了。
通过任务栏的“开始->运行”,输入CMD后回车进入命令行模式。我公司的网络是 192.168.1.0/255.255.255.0,通过ping 192.168.1.1,ping 192.168.1.2......ping 192.168.1.254来测试IP地址是否被占用。当然不管ping返回的是通还是不通,全部ping完后执行arp -a命令显示ARP缓存表,出现在缓存表中的IP地址就是被占用的地址。
可以编辑一个BAT命令来完成上面的一系列ping操作,BAT文件的内容如下:
FOR /L %%i IN (0,1,255) Do ping 192.168.1.%%i -n 1
arp -a > d:\OutIP.txt
第一行是循环运行ping命令,第二行输出所有正在使用的IP地址和它们的MAC地址,保存到D盘的OutIP.txt文件中。
ARP缓存法是以ping法为基础而来的,对于安装了防火墙或设置过滤规则的计算机来说直接ping该IP地址是得不到返回信息的,虽然无法从ping的返回信息中得出该IP地址是否被占用,但是从ARP缓存中却可以看出来。防火墙等过滤设置可以不容许ICMP协议返回数据包给源地址,但是由于ARP是工作在OSI模型中的第二层上的,所以在ICMP协议数据包被过滤前ARP已经通过查看MAC的方式获得了网络中在线主机的MAC地址。
只要网络中的计算机想上网,那么他一定会将自己网卡的MAC地址告诉与其连接的交换机,接下来交换机也会进一步将他知道的MAC地址信息反馈给使用ping的主机。这样我们在使用ping的主机上就能够通过是否获得MAC地址的方式来了解该IP地址对应的计算机是否在线了。
通过任务栏的“开始->运行”,输入CMD后回车进入命令行模式。我公司的网络是 192.168.1.0/255.255.255.0,通过ping 192.168.1.1,ping 192.168.1.2......ping 192.168.1.254来测试IP地址是否被占用。当然不管ping返回的是通还是不通,全部ping完后执行arp -a命令显示ARP缓存表,出现在缓存表中的IP地址就是被占用的地址。
可以编辑一个BAT命令来完成上面的一系列ping操作,BAT文件的内容如下:
FOR /L %%i IN (0,1,255) Do ping 192.168.1.%%i -n 1
arp -a > d:\OutIP.txt
第一行是循环运行ping命令,第二行输出所有正在使用的IP地址和它们的MAC地址,保存到D盘的OutIP.txt文件中。
相关日志:
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
