网络通信 频道

小工具大作用,Ping命令应用解读

  【IT168 专稿】知道什么Ping命令吗?相信大多数网虫对ping这个命令一定不陌生吧,它是用于确定本地主机是否能与另一台主机(服务器和像你机器一样的千千万万的机器)成功交换(发送与接收)数据包。再根据返回的信息,你就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等,但不是Ping成功就代表TCP/IP配置正确,你有可能要执行大量的本地主机与远程主机的数据包交换,才能确信TCP/IP配置的正确性。

  一、概要了解PING
  简单的说,Ping就是一个测试程序,如果Ping运行正确,你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据导致无法正常访问的。
按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,你应能得到4个回送应答。
Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time To Live存在时间)值,你可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。

  二、PING命令格式
  Ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法还真不容易,要达到熟练使用则更是难上加难,但不管怎样我们还得来看看它的真面目,首先我们还是从最基本的命令格式入手吧!

  ping命令的完整格式如下(在此以Windows XP为例,如图1):

  ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_name

  从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现对其参数作一下详细讲解吧!

  -t:有这个参数时,当你ping一个主机时系统就不停的向目标主机发送数据包(即连接执行PING命令),直到你按下快捷组合键Ctrl+C。

  -a:解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。

  -n count:定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。

  -l size:定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byte,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。

  -f:在数据包中发送“不要分段”标志,一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。

  -i TTL:指定TTL值在对方的系统里停留的时间,此参数同样是帮助你检查网络运转情况的。

  -v tos:将“服务类型”字段设置为 “tos” 指定的值。

  -r count:在“记录路由”字段中记录传出和返回数据包的路由。一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由。

  -s count:指定“count” 指定的跃点数的时间戳,此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

  -j host-list:利用“ computer-list” 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔IP 允许的最大数量为 9。

  -k host-list:利用 “computer-list” 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔IP 允许的最大数量为 9。

  -w timeout:指定超时间隔,单位为毫秒。

  target_name:是指要测试的主机名或IP地址。

  三、解读PING信息
  有时候我们使用PING命令后,是不是对屏幕上出现的返回信息有点摸不着头脑,在此就以Ping www.163.com后屏幕出现的信息逐条进行解释(如图2):

  1.Pinging www.163.com [202.108.36.156] with 32 bytes of data:
  正在将32字节数据(Windows默认,但可改变)发送到远程服务器www.163.com,其后的数字202.108.36.156就是该服务器的IP地址,所以有时也可用来实现域名与IP地址的转换功能。

  2.Reply from 202.108.36.156: bytes=32 time=63ms TTL=244
  本地主机已收到回送信息,具体为:32字节,共用126毫秒,TTL为244。ttlo (Time to Live)是存在时间值,你可以通过TTL值推算一下数据包已经通过了多少个路由器,其计算方法为:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数,如128、256等)- 返回时TTL值。例如,返回TTL值为244,那么可以推算数据包离开源地址的TTL起始值为256,而源地点到目标地点要通过12个路由器网段(256-244)。

  3.Ping statistics for 202.108.36.156:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 60ms, Maximum = 63ms, Average = 61ms
  对照解释如下:
  Ping 202.108.36.156总的信息如下:
  数据包个数:发送4个数据包(系统缺省设置,每次Ping时向服务器端发送4个数据包),共回收到4个,共丢失0个占总的0%。
  发送时间总的概括:最快回收时间为:60毫秒,最慢回收时间为63毫秒,平均为61毫秒。

  4/Request timed out.
  有时也会出现“Request timed out.”的返回信息,说明此时网络繁忙,可以稍后再试。


  四、Ping应用进阶
  1.测试网络的通畅
  我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用到,方法很简单,只需要在DOS或Windows的开始菜单下的“运行”子项中用ping命令加上所要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行ping命令的计算机在同一网络或通过电话线或其它专线方式已连接成一个网络),其它参数可全不加。如要测试台IP地址为192.168.0.2的工作站与服务器是否已连网成功,就可以在服务器上运行:ping -a 192.168.0.2即可,如果工作站上TCP/IP协议工作正常,即会以DOS屏幕方式显示如下所示的信息(如图3):


Pinging catv [192.168.0.2] with 32 bytes of data:

Reply from 192.168.0.2: bytes=32 time<1ms TTL=64
Reply from 192.168.0.2: bytes=32 time<1ms TTL=64
Reply from 192.168.0.2: bytes=32 time<1ms TTL=64
Reply from 192.168.0.2: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.0.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

  从上面我们就可以看出目标计算机与服务器连接成功,TCP/IP协议工作正常,因为加了“-a”这个参数所以还可以知道IP为192.168.0.2的计算机的NetBIOS名为catv。

  如果网络未连成功则显示如下错误信息(如图4):


Pinging 192.168.0.3 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.0.3:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

  为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的“Reply from 192.168.0.2: bytes=32 time<1ms TTL=64”和“Request timed out”),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就是告诉你所发送的四个数据包的发送情况。
  出现以上错误提示的情况时,就要仔细分析一下网络故障出现的原因和可能有问题的网上结点了,一般首先不要急着检查物理线路,先从以下几个方面来着手检查:一是看一下被测试计算机是否已安装了TCP/IP协议;二是检查一下被测试计算机的网卡安装是否正确且是否已经连通;三是看一下被测试计算机的TCP/IP协议是否与网卡有效的绑定(具体方法是通过选择“开始→设置→控制面板→网络”来查看);四是检查一下Windows NT服务器的网络服务功能是否已启动(可通过选择“开始→设置→控制面板→服务”,在出现的对话框中找到“Server”一项,看“状态”下所显示的是否为“已启动”)。如果通过以上四个步骤的检查还没有发现问题的症结,这时再查物理连接了,我们可以借助查看目标计算机所接HUB或交换机端口的批示灯状态来判断目标计算机现网络的连通情况。

    2.ping 127.0.0.1
    这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题(如图5)。

    3.ping localhost
    ping localhost中的localhost是个操作系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件(/Windows/host)中存在问题。

    4.ping 本机IP
    如果自己用的计算机的IP地址为192.168.0.1,则使用命令:ping 192.168.0.2,这个命令被送到你计算机所配置的IP地址,你的计算机始终都应该对该Ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。

   5.获取计算机的IP地址

  利用ping这个工具我们可以获取对方计算机的IP地址,特别是在局域网中,我们经常是利用NT或WIN2K的DHCP动态IP地址服务自动为各工作站分配动态IP地址,这时当然我们要知道所要测试的计算机的NETBIOS名,也即我们通常在“网络邻居”中看到的“计算机名”。使用ping命令时我们只要用ping命令加上目标计算机名即可,如果网络连接正常,则会显示所ping的这台机的动态IP地址。其实我们完全可以在互联网使用,以获取对方的动态IP地址,这一点对于黑客来说是比较有用的,当然首先的一点就是你先要知道对方的计算机名。

    6.PING洪水攻击
    没想到使用PING命令也可以进行攻击吧!如果要对一192.168.0.100的主机进行攻击的话,可以使用如下命令:ping 192.168.0.100 -t -l 65500,则就不会不停地此主机发送消息请求,当然仅在某一台计算机上运行此命令并不会产生什么效果,但如果成百台(或更多)的计算机运行此命令,那就形成了洪水攻击,嘿嘿!

    可以说Ping工具在日常的网络维护、故障查找过程中起着极为重要的作用。熟练掌握Ping常见参数的含义是有非常大的作用的。

0
相关文章