去评论
海欣资源

ping命令的介绍及使用教程

werother
2022/05/12 23:55:09
一、ping命令的基本概念
ping是一个十分基本但又十分重要的TCP/IP网络工具。它的作用主要为:
(1)通常用来检测网络的连通情况和测试网络速度;
(2)也可以根据域名得到相应主机的IP地址;
(3)根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。
(4)因为具备以上功能,ping命令常常被黑客用来进行网络扫描和攻击。
对于网络管理员和普通用户来说,我们通常用它来测试网络的连通情况,如果无法正常上网,ping命令是检测网络故障的基本工具。
ping命令的最简单用法是在命令提示符下输入:ping 对方IP地址
这样就可以测试本机和对方主机之间的网络连通情况了。

ping命令执行后会显示一系列Reply from。。。,或者Request timeout。。。这样的结果,前者表示与对方的网络是连通的,而后者表示无法与对方进行网络通信。
那么,这些信息中的bytes=32;time<1ms;TTL=128 是什么意思呢?
    bytes值:表示通信过程中发送的数据包大小,单位是字节。
    time值:表示响应时间,这个时间越小,说明你与对方通信的速度越快,延时越短。
    TTL值:Time To Live,表示数据包再经过多少个路由器如果还不能到达就将被丢弃,这里可以通过Ping返回的TTL值大小,粗略地判断目标系统类型是Windows系列还是UNIX/Linux系列。默认情况下,Linux系统的TTL最大值为64或255,WindowsNT/2000/XP系统的TTL最大值为128,UNIX主机的TTL最大值为255。


二、ping命令的用法
ping命令除了直接ping对方主机的ip地址,验证网络畅通和速度之外,它还有以下这些用法,如图。


下面介绍其中的几种。
    ping -t 对方IP地址
    可以不间断地ping指定IP地址的计算机,直到管理员使用Ctrl+C中断,这样管理员可以通过比较多次通信后的统计数据来判断网络连接情况,比如发送了多少数据包,接收到多少,丢失了多少,平均往返时间多少等等,以此来判断网络性能,例如下面这个例子。


ping -n 数据包数量 对方IP地址
在默认情况下,一般执行一次ping命令只发送4个数据包,通过-n选项则可以自己定义发送的数据包个数,对衡量网络速度都很有帮助,比如我想测试发送10个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少。例如,可以通过以下命令:ping -n 10 47.93.187.142 ,向47.93.187.142 这台主机发送10个数据包,得到如下响应:


从以上可以知道在给47.93.187.142发送10个数据包的过程当中,返回了10个,没有丢失,这10个数据包当中返回速度最快为32ms,最慢为55ms,平均速度为37ms。说明我的网络良好。
如果对于一些网络这样测试,返回的结果可能会显示出丢失一部分,如果丢失的比较多的话,那么就说明网络不好,可以很直观地判断出网络性能。

ping -l 数据包大小 对方IP地址
在默认的情况下Windows的ping发送的数据包大小为32字节,最大能发送65535字节。当一次发送的数据包大于或等于65535字节时,将可能导致接收方计算机宕机。所以微软限制了这一数值;这个参数配合其它参数功能非常强大,比如网络黑客可以结合-t参数实施DOS攻击。(所以它具有危险性,不要轻易向别人计算机使用)。
比如下图,ping -l 65500 -t 211.84.7.46
会连续对211.84.7.46这个地址执行ping命令,发送大量数据,导致对方网络拥塞或者主机宕机。


批量ping一个网段内的所有IP地址
对于一个网段IP地址众多,如果单个检测实在麻烦,那么我们可以直接批量ping网段检测,哪个IP地址出了问题,就会一目了然。
例如,直接在命令行窗口输入:for /L %D in (1,1,255) do ping 10.168.1.%D
表示依次ping从10.168.1.1到10.168.1.255的所有255个地址。
你也可以把10.168.1修改成你要检查的IP地址段。


那么这段“for /L %D in(1,1,255) do ping 10.168.1.%D” 命令是什么意思呢?
    for /L %D in(1,1,255) do是批处理命令,其中的(1,1,255)表示变量%D的值从1开始,每次递增1,到255为止。就是检测网段10.168.1.1到10.168.1.255之间的所有的ip地址,每次递增1,直接到1到255这255个ip检测完为止。这种用法除了管理员检测网络外,还会被黑客用来进行网络扫描,以此来确定攻击目标。
因为最后这两种用法对网络安全有威胁,因此很多主机通过防火墙来拦截Ping命令的数据包,来防止遭受攻击。这时候去ping受到防火墙保护的主机,因为数据包被拦截无法返回,因此会显示request timeout。