航空论坛_航空翻译_民航英语翻译_飞行翻译

 找回密码
 注册
搜索
查看: 1221|回复: 0
打印 上一主题 下一主题

PING命令的高级用法 [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
! I. N9 B7 `& h7 m& [! D$ Z" Q6 @8 ^" @7 P
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:" |) Z5 e, s% W; I8 q6 X

# U$ `9 L4 w0 ?    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) w$ n( [; u+ l8 ?$ ~( a

7 M5 G( ]5 T; _$ W6 I/ X: X2 e  c    Options: ; ]7 |& O& k8 a% t9 B
    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.   R( M5 r5 U# ?& a/ ^$ r5 `
    不停的ping地方主机,直到你按下Control-C。 ) l5 Y3 e  L+ ^; R- F3 r3 r
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 7 {& N5 ^) b2 F3 G' d( i2 p1 x
    -a Resolve addresses to hostnames.
, m! q/ G- x- S2 @' Y
% H7 V5 I3 t0 Z6 k5 G3 K" j    解析计算机NetBios名。
2 t) ~4 q8 y, c. E" W$ m$ {4 O6 b% x: i7 w
    示例:
7 x: u$ Y7 t8 @  ]5 r. k4 {, V7 t& Z! I% c0 T) d
    C:\>ping -a 192.168.1.21+ v% ^: i0 s" W7 E
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
' R, L4 B, P. a2 P9 s$ |" Z0 J. a% @    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 , q4 w: V4 a" W  T
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
; i, B: G# o$ p" @    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
' O$ Z3 a. h% v6 `+ T$ [    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
( U! C) @8 T- L5 ]0 F! U    Ping statistics for 192.168.1.21:
0 w6 K$ H; ]+ ~8 ?    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: ; N: v* G* o6 v/ x- ^- D
    Minimum = 0ms, Maximum = 0ms, Average = 0ms , @2 U* Q: N9 \# k  {* K
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ( u. [- Q0 J. i* s6 M3 S2 G

) z) ?1 G( W3 J* b( Z% z    -n count Number of echo requests to send.
8 v5 a# [! i8 ~% p% l' I    发送count指定的Echo数据包数。 4 b- g9 J$ t; j' t0 t9 [
, b) x# Q5 F. i9 V& @- y
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
; w: K% ~- Q7 E4 W8 e6 {
" p  Y: q1 D" v    C:\>ping -n 50 202.103.96.68 # \8 U% \( U- G& h8 F9 V4 b
    Pinging 202.103.96.68 with 32 bytes of data:
; U/ Y( G( S( y+ X! B
  U' U  Q. Q/ k# y" K) y    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ( G/ M5 m7 ?: C) X7 X: l* |
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
8 H5 V+ _, j: H+ V    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 7 y+ P/ ^! u' R1 O) I  A
    Request timed out.
. F3 o: i* Q7 H9 D    ……………… % e* [& g# {2 k: h* F2 {

  ~9 j3 i3 h1 g8 \/ v: R4 h    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ! j/ O" T  q/ L$ N7 M
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 C& y- V0 q  e0 Z! k
    Ping statistics for 202.103.96.68: 8 r+ K1 y6 @. \* `8 @0 s
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate # Y3 W) y$ l3 W0 E
ound trip times in milli-seconds:
. \5 D5 M* W1 Q2 |* ~    Minimum = 40ms, Maximum = 51ms, Average = 46ms
5 C3 W* g! a: O' G0 v
. z+ p7 H5 C' Q; k6 h( b4 Q    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
# I' {# \+ l* O, `- N; n+ }    -l size Send buffer size. 定义echo数据包大小。 ' F: W* d- j' `6 g' _( M4 n
( d2 N( ~8 q6 b
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)3 U& S: b: X0 D$ d
9 [- M4 {  G  P) x1 z  e% Q" A8 L
    C:\>ping -l 65500 -t 192.168.1.21 * O, a. V. g' o
    Pinging 192.168.1.21 with 65500 bytes of data: ; L; a. J' W/ [/ o- p4 A! y1 A
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 : `" O: j& A$ _- n+ P
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
2 @' B! S3 [9 m! W* t3 E    ………………, K6 \5 P- `! V" y' k
9 D+ t0 G! P; R7 `. t
    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 " ^& T4 v: I7 ~# \: p
& O- D0 ^* q# |% b/ T
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
8 I5 F" L$ k% Z) Z( C    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 / V$ J6 x, E. N- H
    -i TTL Time To Live. % v1 r) h  I7 f  k
    指定TTL值在对方的系统里停留的时间。
4 k- L/ {4 l7 H: Y  G) E7 C0 \* _    此参数同样是帮助你检查网络运转情况的。 ; O: W- D. O8 ]7 A7 w
    -v TOS Type Of Service. ( Q% Z5 s1 c% ^1 \0 X1 K  e
    将“服务类型”字段设置为 tos 指定的值。 % t( {4 ?$ a' y5 ~
    -r count Record route for count hops.
) c. B7 O% x" L( h8 w    在“记录路由”字段中记录传出和返回数据包的路由。 " T+ [& [3 e6 ^  e- ~7 }
0 l5 k: f# V+ x# M% D; p/ }
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
: ~8 Q0 `$ v& x, i# Q$ u7 K! o    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
( c8 F: ?: ^: O' T/ J4 A& ~0 c/ J$ |& s
    Pinging 202.96.105.101 with 32 bytes of data:
' }; L+ ]1 W$ h: o5 Q. f* o2 g. X, j    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
& H+ K/ V/ ]( j" E  ~  z    Route: 202.107.208.187 -> , K3 J+ k2 ?) T4 F/ N
    202.107.210.214 ->
5 V4 N% ^% [/ ?6 F# u    61.153.112.70 -> , _% B# _: \) O1 @: w3 S" l. R
    61.153.112.89 -> & k: J! S1 O+ Z# ~2 I: C1 z
    202.96.105.149 ->
2 D1 I4 J  r* B" {; ], H4 }0 U    202.96.105.97 -> ; R" H& J. A  q, K* O
    202.96.105.101 ->   F: z9 I1 g+ @, \6 }8 d5 e/ e
    202.96.105.150 ->
# i2 a# `# v. T. s    61.153.112.90 " I+ @3 C+ y5 P  f( C# a
1 m) p- v, n# R( t. j
    Ping statistics for 202.96.105.101:
  r/ i; L- c* }$ t* m+ f# \7 L    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
$ k# s0 p, @( u6 t3 B0 N! B4 N    Approximate round trip times in milli-seconds: : s0 `" ]# K- S+ S# c& R
    Minimum = 10ms, Maximum = 10ms, Average = 10ms 3 o/ J/ _3 k0 w7 u2 r) U+ s* i- L

3 [; k  m+ t! Q1 `6 c# U6 w    从上面我就可以知道从我的计算机到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这几个路由。 , z* _9 P: \" a3 K3 h9 t3 h9 \' Q9 X
. S! [9 L2 h" T! f$ s8 G
    -s count Timestamp for count hops.
) @" q% H7 C+ G* w* ?! O    指定 count 指定的跃点数的时间戳。
& D; H% [% S* E7 U. f# e    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
6 F4 y( S7 ^1 a/ ]7 C    -j host-list Loose source route along host-list. 2 r6 v" X- y& E9 d! _
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。   n% G1 l+ L- e! e. e2 B

' O+ k1 [1 d6 y6 h) @    -k host-list Strict source route along host-list. / b8 @/ {; ^8 j: X/ _
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 - s6 W8 f% n+ M5 _
    -w timeout Timeout in milliseconds to wait for each reply.
+ A) F7 H/ [8 f5 g    指定超时间隔,单位为毫秒。
. V* e% X  u/ V1 w# x8 R    此参数没有什么其他技巧。 ( O) \2 w; \$ f# ^/ A* d" @
# H% u0 I4 `4 Y# k+ N7 C
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:( ?* O4 l, A: y5 D/ ?# a- Q
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] " G9 q& |3 Y7 h, J- j% i4 d
    "DefaultTTL"=dword:000000ff
2 x4 p! C; q$ d2 f. [    255---FF   M6 ]2 K5 [' p# N* ?
    128---80 4 f1 F9 c5 A4 v0 W+ g3 N! X
    64----40 - k' p/ I7 h+ D4 Q- j
    32----20
您需要登录后才可以回帖 登录 | 注册


Archiver|航空论坛 ( 渝ICP备10008336号 )

GMT+8, 2025-5-25 11:48 , Processed in 0.031200 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部