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

标题: PING命令的高级用法 [打印本页]

作者: 帅哥    时间: 2009-1-18 10:57:08     标题: PING命令的高级用法

对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 / m3 ^' ^( q5 z$ ^7 w- X1 K
0 m5 O2 Y" A$ H4 p. Y
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
6 _3 ]1 [/ ?! B. V5 x5 E. S* f9 q2 n) m: Q0 J0 J' R
    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
) X5 {3 L) ?  u' _' F4 K4 C0 [7 z/ V9 k  n: J: y9 \" t  w
    Options:
5 q% t9 k9 e% f1 @( i$ A2 `    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
& d8 j, P3 V/ y; f" a" ~' r' V    不停的ping地方主机,直到你按下Control-C。
- s" Y/ p$ |! w4 L    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
& u' C+ S) `4 |% \& @    -a Resolve addresses to hostnames.
1 w0 c9 s- Z; p0 u
! t" w6 z9 x0 T1 `# R    解析计算机NetBios名。
6 D6 m3 g, r& {6 I/ L5 Z3 z6 `( o  E
    示例:+ _* L  ?) W9 G3 s# |6 K

1 N' l: o* ~$ t9 f8 z# D% U    C:\>ping -a 192.168.1.21
. f6 @9 C! ~+ Y! b    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
4 h& T- X! `0 o; W    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ! g: ?- I  M0 Q+ d3 h
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 . [- L5 z, d# q% h: T0 q, l
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 0 ~9 v3 @$ W" p& f7 i
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 1 K' Z6 C7 Q) \+ p' e9 r$ q# B
    Ping statistics for 192.168.1.21:
# l, g# |# S6 v. N0 b" X    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 4 }7 ~3 z+ F3 O. y2 R. h' K' k  v
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
, }2 u/ `6 [5 T4 [2 H% N+ Z! x; [    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
, n) V  |; o. k% b$ R- \
/ x" O( R. s6 N9 R6 f    -n count Number of echo requests to send. ! p; J; R3 b. o1 o- @
    发送count指定的Echo数据包数。
% t' n& s1 d1 ]. Y2 Q5 E' e3 y* ?5 P' h
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:' |, x1 [9 [3 B: Y2 V: t
4 J* ~3 O) L5 D4 \( T: [
    C:\>ping -n 50 202.103.96.68 , G8 T7 Z' I$ q3 L
    Pinging 202.103.96.68 with 32 bytes of data: & o& R; W/ q5 d1 L3 x' k5 z7 R
: Y: U( ~( N  c0 t$ w/ A
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
1 C/ Y, y3 s7 h. y- l$ [" [    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 l6 H- n  [! v. r    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 $ A9 T4 e: |2 _/ B3 m
    Request timed out. 8 v% d! W" G3 {' C
    ………………
$ [' W0 M' H+ E7 P& l6 q6 ]: F+ C# u1 e* m5 H5 l
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
3 Q2 i/ }% R" e: \6 c    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
/ }* s/ C% Z1 N! h    Ping statistics for 202.103.96.68:
4 s! r3 Z+ J( v; N3 O0 E    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 1 a/ q: i7 L- O4 j  z8 e+ m
ound trip times in milli-seconds:
" R7 C% o+ p0 T! B4 T    Minimum = 40ms, Maximum = 51ms, Average = 46ms * p- X8 @$ S, a9 n, B6 s
% O6 r0 K6 B2 K* E) i; M) _
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 8 g# j. l3 {' _2 \# P
    -l size Send buffer size. 定义echo数据包大小。
, `3 A0 y$ a- u; V; _' I) x
* O* Y) A7 F7 |0 e" w; g    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
+ [! J/ m! H) t; C4 P. q. M: o5 M; w
8 i' C  F+ d# a, e4 |    C:\>ping -l 65500 -t 192.168.1.21 " c  a! m* c5 j/ Q; U) i0 f- ^4 w3 w
    Pinging 192.168.1.21 with 65500 bytes of data: 0 b/ g+ y7 ?, L4 F8 o/ L2 h3 P
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
* {, L% ?' f2 f6 L% F    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 , i9 M' P' ^; m% ~* m% y
    ………………9 q: o2 d# Y; ^: S1 S. p

5 @) Y2 q# S8 ^4 \+ N; A    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 . b. Y4 A" h! i1 z3 }  z, f

% e+ J) c/ b$ j9 Z    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 & h; L0 h1 E. h# Q6 o) p3 x7 T* l
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 , A6 Y# o4 O* M
    -i TTL Time To Live. 3 |9 C5 C3 B, _; f; t
    指定TTL值在对方的系统里停留的时间。 0 u1 \; S8 ~! B( z# o
    此参数同样是帮助你检查网络运转情况的。 % t* W) _% Q( f  T5 V
    -v TOS Type Of Service. 3 Q/ ~. l; G% T) y+ M: d
    将“服务类型”字段设置为 tos 指定的值。
  c2 _/ {* f& K8 R' a9 P0 T' P8 Z    -r count Record route for count hops.
0 q3 S. ?. Q( u$ W+ E* x+ R9 M    在“记录路由”字段中记录传出和返回数据包的路由。 0 I2 R9 z+ D1 |2 _( ^
( E/ G9 J3 H) _$ {- v
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
, t3 z+ F! s7 ?1 _9 P: u    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
) v1 I- s, K3 |5 W4 y- r9 x) a! x* D+ ~; h
    Pinging 202.96.105.101 with 32 bytes of data: 8 K7 T. I7 u3 d/ c7 [+ _5 n
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 4 O0 g; c& }; d
    Route: 202.107.208.187 -> ( k3 Q) k2 M+ D& C; `% |
    202.107.210.214 -> 6 ~2 [1 }- e+ _/ h3 A$ B- M! I5 ?
    61.153.112.70 ->
& {* `( o9 w/ Z5 W  `" g    61.153.112.89 -> % G6 }, A! e) w& Q
    202.96.105.149 -> ) \& O9 y5 n% r4 O5 d. z2 p$ s
    202.96.105.97 -> 0 m8 ]# f/ z4 h  D5 K, C
    202.96.105.101 ->
: }. _- z2 x. c' ~$ O    202.96.105.150 -> 1 @2 R. T* P' l, `0 t
    61.153.112.90
& R8 S. l5 u& H: h* w* G8 X
3 w" M0 K/ M6 F8 C+ P6 J    Ping statistics for 202.96.105.101: 2 t) m$ N5 l. z( M1 A8 w
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
4 C" [. U# n5 P* ]: K* o    Approximate round trip times in milli-seconds: + j  {9 u* z7 c
    Minimum = 10ms, Maximum = 10ms, Average = 10ms
: V; Y) a4 w3 v9 N3 f) j  E8 Q/ F) a+ @8 Q& r* b* O
    从上面我就可以知道从我的计算机到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这几个路由。 6 b5 T. p! c5 [
' ]0 \( |# a! I; O( X
    -s count Timestamp for count hops.
' t. L, x( i0 C8 l( E    指定 count 指定的跃点数的时间戳。
! X# a, V6 Z$ ?' e    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 $ t1 m9 s' W; o- B/ f- J
    -j host-list Loose source route along host-list. $ L8 p+ |  }. r& f: e; ^+ s* V9 [
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
% J. b5 O1 u9 V3 M/ D6 X; S8 Y
+ o! g8 d. g1 v( _3 p    -k host-list Strict source route along host-list. * L7 Y, ]0 ]4 l3 Z  a
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 , L/ t0 M; R1 e( M7 z+ U
    -w timeout Timeout in milliseconds to wait for each reply. ) X6 G" R! H% i  k) E1 _
    指定超时间隔,单位为毫秒。
- W4 ~* E* t4 H% t6 u    此参数没有什么其他技巧。 / u" H9 o! i# y+ z
8 E8 F# v' N& u0 l3 y) M' Q
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
" o! q) g* M* L) B9 l: o" D    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
, `% r3 E  v& o4 f" H! w/ }7 _3 M9 l0 i    "DefaultTTL"=dword:000000ff 4 b$ k+ Z9 T4 L3 x6 ~7 H6 D
    255---FF 1 }3 i1 u8 c! s: t) o
    128---80 7 n8 q- p5 g( l% z) l
    64----40 8 L4 _# O0 \/ U# V0 _
    32----20




欢迎光临 航空论坛_航空翻译_民航英语翻译_飞行翻译 (http://bbs.aero.cn/) Powered by Discuz! X2