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

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

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

对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
" u( K8 w0 u, E. K
$ N( g" Y9 [# b/ l    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
; S9 f8 o% n  A: L' X/ f% q) t- D9 h- }6 Y$ 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
% w7 Z5 D: z% s3 X
  F# b' d( v" @5 s$ j    Options:
! ^  H& o! r* D' D% W7 i$ T& _    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
: r. E* O" }; S: ~7 ?    不停的ping地方主机,直到你按下Control-C。
! m- g6 W: [) N! K, \, V; U% Y4 `& l    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 : C. D/ g+ R7 ?( [' h
    -a Resolve addresses to hostnames. $ x  ]1 P7 p, X8 m( _) ?8 K/ R
8 M4 Y4 {. J+ x0 o+ P; j, N
    解析计算机NetBios名。 : U! U' H; }+ e' r- I

7 L7 e$ T; X* x    示例:
7 Y5 R0 q. F  f* Y! n9 j& ]: H1 D; r6 V- e, W# ]
    C:\>ping -a 192.168.1.21
4 D% M) {  l$ S2 H2 f    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ' N6 ]. F  K: P5 k" L% ~
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 , j/ X' u( |' a7 d! E
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
4 ^3 u, _7 _0 n( p, @. o    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 * q# X3 y, I& B6 \8 H8 C
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 6 R$ b- M. u& z% J2 l# G
    Ping statistics for 192.168.1.21:
/ f' L) }% V* k" @$ {    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
; P+ x$ f& L& Z& W5 g$ Q+ C  T    Minimum = 0ms, Maximum = 0ms, Average = 0ms 1 U& `& _. L! V) W; `( [- h, I9 P  v. c5 ~
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 9 O% \$ S) |$ d9 f8 E! ?% C% P

7 I$ [7 y/ q& ~    -n count Number of echo requests to send.
* W; N8 X0 f- d$ D& _    发送count指定的Echo数据包数。
' b. }1 l& y8 @( Z+ G, d7 l* b/ i7 n
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
/ B  N- B- e! a
: M+ `$ R# \5 _" Y- b+ Z# c    C:\>ping -n 50 202.103.96.68 " B9 k+ k2 R! k7 g4 _9 I4 O
    Pinging 202.103.96.68 with 32 bytes of data:
& p* `( C# V5 p! T5 K7 R2 K4 K( e. l1 p
# z( ?% c. Z# F* x( `' i/ O, v2 ~    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 X2 I/ C, X( o7 g" ?5 X- ]! Q
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 L6 L  ^9 L5 d+ o
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 7 }( d- W8 d: e. y# n2 c# e0 }
    Request timed out.
- }8 l( P/ ]4 `5 Y" }    ………………
. a+ C/ |$ J. \
4 C8 S  ^8 K+ B) E2 M2 t    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / d6 U( L9 D  p4 A; V9 t5 G- }& n: o
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 K- A7 k( ?1 {( h' ]6 I1 @' z
    Ping statistics for 202.103.96.68: 1 A5 w7 `" d, ~( v9 t7 f
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate ! W: i+ @  J$ e8 c
ound trip times in milli-seconds:
& b9 I- G2 ?% |5 x* K& W    Minimum = 40ms, Maximum = 51ms, Average = 46ms
7 c0 _: q( w. t3 T3 [1 r
/ x7 Z6 H7 m, T3 R    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
' M$ G7 n0 |4 d2 ]1 ]& h    -l size Send buffer size. 定义echo数据包大小。
; E# u' {0 n% S. n1 h0 l, P5 N7 T/ O/ @0 Q+ l
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
# V8 }2 x  B# U' f  P0 V
& T0 v! i; t! ~4 [    C:\>ping -l 65500 -t 192.168.1.21 9 \, W3 b6 @0 E
    Pinging 192.168.1.21 with 65500 bytes of data: 4 ]+ E3 u: R; ?: i' E& p& e
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 % ?! _( M' ?( |4 E/ d
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
0 M8 f/ D0 `  ^/ O2 ^" A    ………………8 f' Z! T  W: u7 k" i

! z( \7 `" Z8 Y# [; B  h    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 / Z$ Z: G* F% R. M( k) n! W

2 `4 o# _, o9 m: L$ T7 F    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 / [7 L) O' l5 P
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 ! B1 g. E  |  g/ m: D9 o
    -i TTL Time To Live. - Z7 L7 ]$ I1 C' N, K& v3 k3 W$ ~
    指定TTL值在对方的系统里停留的时间。
# s$ Y% O6 W# O    此参数同样是帮助你检查网络运转情况的。 2 P: L. V) R8 h# g' b7 m9 }; g
    -v TOS Type Of Service. - c; e; p2 E! [3 N  o) [
    将“服务类型”字段设置为 tos 指定的值。 ' u- l7 J# F) s. G
    -r count Record route for count hops.
, p0 c# p! W' J, o. ^* ?    在“记录路由”字段中记录传出和返回数据包的路由。 8 T* p; I/ [" _. ?5 F

/ s/ x7 c( o4 o) J# o9 c    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
+ o, u" C2 U: B( R1 ?    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) : p! q: ]9 f7 E6 h' P4 ]) E& c

8 T- M- S  q  \0 D  T6 R4 L    Pinging 202.96.105.101 with 32 bytes of data:
7 O2 P9 l/ u4 P6 @- X7 G) i: I8 D    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
, D8 D' S+ J. g9 c    Route: 202.107.208.187 ->
% u  C( ~6 [) `4 R* v    202.107.210.214 -> 9 k/ ~  \+ @2 P$ S  f; J
    61.153.112.70 -> . M4 a( V$ T/ H$ r
    61.153.112.89 ->
: N6 o8 Z; O& C9 J2 K8 i    202.96.105.149 -> ! o7 b/ u6 N+ a8 p
    202.96.105.97 ->
3 @: c5 O5 d# Q    202.96.105.101 -> 8 b, I6 h2 @% d4 ]1 t
    202.96.105.150 ->
. k/ X& a+ h/ }$ ], H5 R# |) B    61.153.112.90
! W: s8 j7 b4 {# n) h5 A; R
9 z% o2 P% X+ W6 b- }  J    Ping statistics for 202.96.105.101: 1 u1 v/ L/ ^4 B) g; c5 S- s
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 6 M1 q: I; F% e$ E# m
    Approximate round trip times in milli-seconds: " h* G% @$ g& V
    Minimum = 10ms, Maximum = 10ms, Average = 10ms 6 L5 e; h7 [' I' s- J
* a6 p$ x/ s; Z! I! G
    从上面我就可以知道从我的计算机到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这几个路由。
$ ~. q! d$ K& G6 a2 j, C7 W5 `/ L: D6 X' l* B1 W
    -s count Timestamp for count hops.
) h  D* O+ n& Y3 [) ^  T7 c7 ?    指定 count 指定的跃点数的时间戳。 6 T3 S& s' n; ^: A5 c, Q
    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
( ~2 C; s$ V2 M. b9 ~' X    -j host-list Loose source route along host-list.
. k& j9 ?. j# t+ E; Q) x$ Q, L3 F利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
3 V/ v( Y. |: e' Q; |8 R2 ~  [0 P, n5 B; z! ^- T5 f+ T0 s
    -k host-list Strict source route along host-list. # j  w$ S8 }7 _- j8 a1 ^
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
4 J9 X9 V; }' h$ a    -w timeout Timeout in milliseconds to wait for each reply.
0 W" L) h, o9 ~" b/ l" D    指定超时间隔,单位为毫秒。
1 U! _2 q( m' L! `    此参数没有什么其他技巧。 ( k: q4 _5 ^- `# u  T4 [4 F
; x/ g" x1 ~2 X
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
  ^8 ~) ]& c# r& f, D% r2 A: E    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] ) q9 F8 _+ O+ `. R# h( I- T
    "DefaultTTL"=dword:000000ff
$ Y  N1 P5 v* Y8 n    255---FF
" N' O& \$ W2 b* C( y5 H) \! ]    128---80 * U- h  N/ Y2 E- Q/ E2 K
    64----40 6 R& N$ i# M$ u/ D
    32----20




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