ping的使用方法

ping命令详解

关键词: ping命令

系统内置的网络测试工具ping 1.Ping命令的语法格式 ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法还真不容易,要达到熟练使用则更是难下

加难,但不管怎样我们还得来看看它的真面目,首先我们还是从最基本的命令格式入手吧! ping命令的完整格式如下: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count]

[-s count] [-j -Host list] | [-k Host-list] [-w timeout] destination-list 从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现对其参数作一下详细讲解吧! -t—— 有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你按下Control-C。 -a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。 -n count——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。 -l length——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了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——指定超时间隔,单位为毫秒。 destination-list ——是指要测试的主机名或IP地址 2.Ping命令的应用 (1)、测试网络的通畅 我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用到,方法很简单,只需要在DOS或Windows的开始菜单下的“运行”子项中用ping命令加上所要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行ping命令的计算机在同一网络或通过电话线或其它专线方式已连接成一个网络),其它参数可全不加。如要测试台IP地址为196.168.1.21的工作站与服务器是否已连网成功,就可以在服务器上运行:ping -a 196.`68.123.56 即可,如果工作站上TCP/IP协议工作正常,即会以DOS屏幕方式显示如下所示的信息: Pinging cindy[196.168.1.21] with 32 bytes of data: Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 Ping statisti for 196.168.1.21: 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为

196.168.1.21的计算机的NetBIOS名为cindy。 如果网络未连成功则显示如下错误信息:

Pinging[196.168.1.21 ] with 32 bytes of data Request timed out. Request timed out. Request timed out. Request timed out. Ping statistice for 196.168.1.21: Packets:Sent=4,Received =0,Lost\=4(100% loss), Approximate round trip times in milli-seconds Minimum=0ms,Maximum=0ms,Average=0ms 为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的“Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 ”和“Request timed out”),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就是告诉你所发送的四个数据包的发送情况。 出现以上错误提示的情况时,就要仔细分析一下网络故障出现的原因和可能有问题的网上结点了,一般首先不要急着检查物理线路,先从以下几个方面来着手检查:一是看一下被测试计算机是否已安装了TCP/IP协议;二是检查一下被测试计算机的网卡安装是否正确且是否已经连通;三是看一下被测试计算机的TCP/IP协议是否与网卡有效的绑定(具体方法是通过选择“开始→设置→控制面板→网络”来查看);四是检查一下Windows NT服务器的网络服务功能是否已启动(可通过选择“开始→设置→控制面板→服务”,在出现的对话框中找到“Server”一项,看“状态”下所显示的是否为“已启动”)。如果通过以上四个步骤的检查还没有发现问题的症结,这时再查物理连接了,我们可以借助查看目标计算机所接HUB或交换机端口的批示灯状态来判断目标计算机现网络的连通情况。 (2)、获取计算机的IP地址 利用ping这个工具我们可以获取对方计算机的IP地址,特别是在局域网中,我们经常是利用NT或WIN2K的DHCP动态IP地址服务自动为各工作站分配动态IP地址,这时当然我们要知道所要测试的计算机的NETBIOS名,也即我们通常在“网络邻居”中看到的“计算机名”。使用ping命令时我们只要用ping命令加上目标计算机名即可,如果网络连接正常,则会显示所ping的这台机的动态IP地址。其实我们完全可以在互联网使用,以获取对方的动态IP地址,这一点对于黑客来说是比较有用的,当然首先的一点就是你先要知道对方的计算机名。 (3)、上述应用技巧其实重点是Ping 命令在局域网中的应用,其实Ping命令不仅在局域网中广泛使用,在Internet互联网中也经常使用它来探测网络的远程连接情况。平时,当我们遇到以下两种情况时,需要利用Ping工具对网络的连通性进行测试。比如当某一网站的网页无法访问时,可使用Ping命令进行检测。另外,我们在发送E-mail之前也可以先测试一下网络的连通性。许多因特网用户在发送E-mail后经常收到诸如“Returned mail:User unknown”的信息,这说明您的邮件未发送到目的地。为了避免此类事件再次发生,所以建议大家在发送E-mail 之前先养成Ping对方邮件服务器地址的习惯。例如,当您给163网站邮件用户发邮件时,可先键入“ping 163.com”(其实163.com就是网易的其中一台服务器名)进行测试,如果返回类似于“Bad IP address 163.com”或“Request times out”或“Unknow host 163.com”等的信息,说明对方邮件服务器的主机未打开或网络未连通。这时即使将邮件发出去,对方也无法收到。

Ping命令的使用方法

文章出处:windows 发布时间:2005-05-09 点击:0

Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不 是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具, 也总结了一些小经验,现在和大家分享一下。

现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安 装了TCP/IP协议以后才可以使用:

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s coun

t] [-j computer-list] | [-k computer-list] [-w timeout] destination-list

Options:

-t Ping the specified host until stopped.To see statistics and continue - type C

ontrol-Break;To stop - type Control-C.

不停的ping地方主机,直到你按下Control-C。

此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。

-a Resolve addresses to hostnames.

解析计算机NetBios名。

示例:C:\>ping -a 192.168.1.21

Pinging [192.168.1.21] with 32 bytes of data:

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Ping statistics for 192.168.1.21:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times

in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

从上面就可以知道IP为192.168.1.21的计算机NetBios名为。 -n count Number of echo requests to send.

发送count指定的Echo数据包数。

在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量 网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少

,最慢时间为多少就可以通过以下获知:

C:\>ping -n 50 202.103.96.68

Pinging 202.103.96.68 with 32 bytes of data:

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Request timed out.

??????

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Ping statistics for 202.103.96.68:

Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip tim

es in milli-seconds:

Minimum = 40ms, Maximum = 51ms, Average = 46ms

从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两

个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度

为46m

s。

-l size Send buffer size.

定义echo数据包大小。

在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小, 但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt, 因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的

数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是

限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害

依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带

有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)

C:\>ping -l 65500 -t 192.168.1.21

Pinging 192.168.1.21 with 65500 bytes of data:

Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254

Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254

??????

这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计 算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样

的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方

的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。

-f Set Don't Fragment flag in packet.

在数据包中发送“不要分段”标志。

在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分 段处理。

-i TTL Time To Live.

指定TTL值在对方的系统里停留的时间。

此参数同样是帮助你检查网络运转情况的。

-v TOS Type Of Service.

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

-r count Record route for count hops.

在“记录路由”字段中记录传出和返回数据包的路由。

在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢 ?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟

踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。 以下为示例:

C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)

Pinging 202.96.105.101 with 32 bytes of data:

Reply from 202.96.105.101: bytes=32 time=10ms TTL=249

Route: 202.107.208.187 ->

202.107.210.214 ->

61.153.112.70 ->

61.153.112.89 ->

202.96.105.149 ->

202.96.105.97 ->

202.96.105.101 ->

202.96.105.150 ->

61.153.112.90

Ping statistics for 202.96.105.101:

Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 10ms, Maximum = 10ms, Average = 10ms

从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.10

7.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路 由。

-s count Timestamp for count hops.

指定 count 指定的跃点数的时间戳。

此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

-j host-list Loose source route along host-list.

利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由 稀疏源)IP 允许的最大数量为 9。

-k host-list Strict source route along host-list.

利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由 严格源)IP 允许的最大数量为 9。

-w timeout Timeout in milliseconds to wait for each reply.

指定超时间隔,单位为毫秒。

此参数没有什么其他技巧。

ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略

的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系

统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然T

TL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "DefaultTTL"=dword:000000ff

255---FF

128---80

64----40

32----20

好了,ping命令也基本上完全讲解完了,其中还有-j,-k参数我还没有详细说明,由于某些原 因也包括我自己所收集的资料过少这里也没有向大家详细介绍,请大家见谅,如果在看了这篇

文章的朋友当中有知道得比我更多的,以及其他使用技巧的也希望您能告诉我,并在此先谢过

在这里我补充一点:那个-l参数最大值是64K,严格说那个例子给得不对,都65多K了,不可能那么大,加上那个-t,不停的ping可以让一些路由器重起,导致路由器的设置恢复原始值,这就是入侵路由的一种方法,有点用的.