PING不通你 我也知道你在不在线!
来源:互联网 发布:qq教程网源码 编辑:程序博客网 时间:2024/06/11 13:58
总结:当PING不通一个IP时,再通过arp -a查看是否有该IP的MAC,才能确认该Ip到底存不存在!
原因:PING不通 ICMP包被拦截,但ARP包未被拦截。 PING命令要先发ARP包,再发ICMP包。
做过网络管理员的同学应该都遇到过这种情况,当判断一台PC是不是处于开机在线状态时可能最先想到的就是PING一下那台PC的IP地址,能PING通表示在线,PING不通……可能在线也可能不在线。为什么这么说?因为PC上可能运行着防火墙软件,WINDOWS自带的防火墙也好,第三方防火墙也好,默认设置都会拦截下PING入本机的“请求”数据包,这导致PING“请求”发出方收不到回应,超过时间后便会显示TIME OUT提示,虽然PING不通,但我们却无法依此确定此PC是不是在线,那有没有简单有效的方法来判断某PC是不是在线?
此时,WINDOWS 中的ARP命令可以帮到我们,ARP –A命令的作用是查看ARP缓存中的所有项目。ARP缓存表中包括什么对我们有用的信息呢?当然是MAC地址了,为什么这么说?同学们且往下看。
当我们在PC1上输入ping 10.0.0.10 ,按下回车键后系统所执行的第一个实际操作其实并不是PING功能本身,PC1首先是要使用ARP协议解析目标IP地址,在收到目标主机的回应之后,PC1才会发送ICMP包给目标主机。如果系统装有防火墙,这时防火墙就起作用了,防火墙不会拦截ARP解析IP地址,但却会拦截PING请求,PING请求被拦截,目标主机自然不会给PC1发送相应的PING回应数据包,超过时间之后,PC1上的PING操作便显示超时,其过程大致就是这样。
防火墙不会拦截ARP协议解析IP地址这点对我们来讲就够用了,IP地址被解析成MAC地址后我们可以通过ARP –A命令查看ARP缓存表,只要在ARP缓存表中出现目标主机的IP-MAC对应条目,那证明其就是在线的,如果目标主机处于关机或离线状态,自然ARP协议无法解析PC1所请求的IP地址,也就不会有目标主机的IP-MAC对应条目 通过这样,我们便可以很简单的了解到目标主机是不是在线了。
虽然PING不通,但是PC1的ARP缓存表中却出现了10.0.0.10的MAC地址(硬件地址亦作物理地址),证明目标主机是在线的。如下图:
如果目标主机不在线(在测试时小编将目标主机关机),ARP协议无法解析10.0.0.10的MAC地址,如下图。小编还试着将目标主机的网卡禁用,其结果相同。
使用Wireshark分析数据包,能更好的帮助我们理解上面所说的情况。有Echo (ping) request 但没有Echo (ping) reply 。
- PING不通你 我也知道你在不在线!
- PING不通你 我也知道你在不在线!
- PING不通你 我也知道你在不在线!
- 我知道你不知道我知道你不知道我知道你不知道
- 我知道你不知道我知道
- 我不知道,我愿你知道!
- [搞笑]谷歌:我知道你不知道我知道你....
- [搞笑]谷歌:我知道你不知道我知道你....
- 我不知道你是谁
- 我最亲爱的胖胖,不知道你在干什么
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 你——我知道在你的生命中有太多的不知道
- 你知道我在等你吗?
- Eclipse调字体,联想功能(提示功能)设置
- C++学习转载文章汇总
- hdu2112 HDU Today (最短路之dijkstra和spfa)
- 招聘:有兴趣做一个与Android对等的操作系统么?
- log4j设置增量日志
- PING不通你 我也知道你在不在线!
- 一步一步学习之安装与配置 CakePHP (一)
- 将一个正整数分解为连续的自然数的和
- MySql删除重复记录(亲自测试过)
- Jquery常用的工具函数
- DiskFileUpload类
- LeetCode - Container With Most Water
- 五类互联网地址划分
- 推荐C++新手使用Ubuntu下Geany+Scribes C++环境