如何正确使用Windows的Ping命令
0
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 C)um9} Z;ht 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用: F&!6jv .
?8;q A ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list q }i]'7 F|
SXn\ Options: D$w6V G)EU_UE9 -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. 8zZvht* VQc_|z_s 不停的ping地方主机,直到你按下Control-C。 v> LIvi|] h9t$Uz^N 此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 [>jbhV' pR*VdC _mY -a Resolve addresses to hostnames. x>**;#7) m(r,Acy6 解析计算机NetBios名。 @x*c1%wg j@n)kPo,1 示例:C:\>ping -a 192.168.1.21 k$
4y9{ @:oXN]+
_ Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: >nJ\BPx !y\'EW3|G Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 4`4
kfiS$ Tm~" IB* Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 d`QN^)F0# 5Mro
Nr Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 H9'$C/w
-RE^tW*Yy Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 p)KheLiZ &y\prip Ping statistics for 192.168.1.21: 3lf=b~Zi) Zd3S:),& Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 7BE>RE=) ux=w!y;} Minimum = 0ms, Maximum = 0ms, Average = 0ms LoURC$lS z 9vInf@M 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 %"q
9:{m DBo%fYst -n count Number of echo requests to send. 1vS#K=s
b ] ]u
s % 发送count指定的Echo数据包数。 KI.q@zO6| y%&q/tk 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知: .N,bIQnj 57'*w]4f C:\>ping -n 50 202.103.96.68 :N:yLd} & _('=b/ Pinging 202.103.96.68 with 32 bytes of data: .eS<Dbku< OC_+("N Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 n7zm
>& R"-mKT} Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 r )Ma3FL0; |-fgj' Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ?qmRbDI "H=6j)Cb Request timed out. Jz\%%C '*Z1tDFS ……………… Df}A^G >X {AhthR%(1 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 U'k*_g D@,6M#SK Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 OTvPU kp* Ab~3{Q]# Ping statistics for 202.103.96.68: Z&G+bdA>, Yz'K]M_Dq Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds: Wvq27YK' [T|aw1SoN Minimum = 40ms, Maximum = 51ms, Average = 46ms ;nI] !g: sZ3KT& 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 Mc?Qx .ODU -l size Send buffer size. y;4OY kGH }[w 定义echo数据包大小。 g1;:KzVv zv|2:4H 在默认的情况下windows的ping发送的数据包大小为 32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为 Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负) gIo@Pm e+=y*OmQ C:\>ping -l 65500 -t 192.168.1.21 %@<8<6&q ML}J\7R Pinging 192.168.1.21 with 65500 bytes of data: ;"xfOzQ \Q {m9fE Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ~G)S
I
)~GZ Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 tl[Uw[ P:hBt\5B 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪, aEBu *`-j 网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 ZAW^/bo< `
:ArT}F -f Set Don't Fragment flag in packet.
$r^GE ,[N%Q# 在数据包中发送“不要分段”标志。 Ka'=o?'B5 1;JEc9#h 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 l94b^W}1)W
k)i3
-i TTL Time To Live. W6^5YH%
JL`-0P<M 指定TTL值在对方的系统里停留的时间。 z$&{:\hj aacpM[{f 此参数同样是帮助你检查网络运转情况的。 n|6Ic,:[ -5)H<dAQZ -v TOS Type Of Service. hE &xE; 'I`&Yo~c9 将“服务类型”字段设置为 tos 指定的值。 `oAW7q)~ R
&n
Pj~ -r count Record route for count hops. UgRhWV~f0
|{&{ 在“记录路由”字段中记录传出和返回数据包的路由。 $6qh|
>z. gLb`pCo/ 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: b\ X@gq
_1!7V3|^ C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) xn?a. 3b' 9-sw!tKx Pinging 202.96.105.101 with 32 bytes of data: fIM,lt )n1_(; Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 jxP;>K7O $ux,9H'[ Route: 202.107.208.187 -> :)8VdWg 32(^Te]: 202.107.210.214 -> oF vfCrd \Yy$MLs 61.153.112.70 -> <c*FCblv 4aug{}h(" 61.153.112.89 -> N'F77
. W= ig.- 202.96.105.149 -> <'}YyU= m\;R2"H% 202.96.105.97 -> 3D6RLu <3L5"77G6 202.96.105.101 -> pk>^?MO (|F*vP' 202.96.105.150 -> c& <Fr[AK ;[(oaK@+n 61.153.112.90 C:GK,?!Jn' 0`Kj25 Ping statistics for 202.96.105.101: 2v :]tj Pi=+/} Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), '_<{p3M sXqz+z$* Approximate round trip times in milli-seconds: ( B!uy` 3N8t`N Minimum = 10ms, Maximum = 10ms, Average = 10ms zh%#Y_[R
_,kj:R. 从上面我就可以知道从我的计算机到 202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。 AWcLUe { CJtcn_.F -s count Timestamp for count hops. K
~uXO {vs
uPY
指定 count 指定的跃点数的时间戳。 =NpYFKmMhV rUTcpGH 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 eJ,/:=QQ{ (XVw"m/ye -j host-list Loose source route along host-list. ~Cbc<[} ,y1PbA0m 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 ih)zG $Y;U[_l# -k host-list Strict source route along host-list. oVnvO iAc 60P<4 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 ><RpEnWZ< c>,
KZ! -w timeout Timeout in milliseconds to wait for each reply. ,aOl_o -& +ndaL
hj' 指定超时间隔,单位为毫秒。 WJ$bf(X* 9FoHD 此参数没有什么其他技巧。 vGvf<ra;H B|Du@^$ ping 命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是 UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在 240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现: ]Gzm^6v j_/>A=OD [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] vNVox0V ?fiIwF) "DefaultTTL"=dword:000000ff *jLJcb*.Ap v5/~-uRL% 255---FF @_-hk|Nl@ x`U^OLV 128---80 d+<G1w& |