PING不通你 我也知道你在不在线!
来源:互联网 发布:阿里云vpn服务器 l2tp 编辑:程序博客网 时间:2024/04/30 10:52
总结:当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不通你 我也知道你在不在线!
- 我知道你不知道我知道你不知道我知道你不知道
- 我知道你不知道我知道
- 我不知道,我愿你知道!
- [搞笑]谷歌:我知道你不知道我知道你....
- [搞笑]谷歌:我知道你不知道我知道你....
- 我不知道你是谁
- 我最亲爱的胖胖,不知道你在干什么
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- 你——我知道在你的生命中有太多的不知道
- 你知道我在等你吗?
- 基于DBus的进程间通信(IPC)
- 【程序15】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
- 采用矩阵法计算1900年后某一天的星期数
- 《HTML与CSS网站设计实践之旅》读书笔记
- 【程序16】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数
- PING不通你 我也知道你在不在线!
- 【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- 黑马程序员——内省JavaBean总结
- 关于浏览器拦截自动弹窗的问题
- 【程序18】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制
- 位运算总结
- ACM进阶指南
- 深入Struts2的配置文件
- log4j发邮件