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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |正序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
( y5 P+ z3 P$ ?9 c# u1 j- U. M. v4 K. j" x  m2 B7 H9 l: S
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:: u" C7 i- _" \( P
& u1 Z& b) j6 B1 I
    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
3 o8 p5 Z* L: w% H. f! V9 O
5 ^. G$ x9 a8 L( c% F    Options: 9 C9 M9 i/ Y: X
    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. ; t, c# D) s+ v# ~5 V
    不停的ping地方主机,直到你按下Control-C。 2 ?0 U, d. `4 G$ f+ ?$ L. d* v
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
/ |  j$ J% B3 i8 n* k    -a Resolve addresses to hostnames.
; u  V5 Z8 |3 A/ S
, J9 |8 _3 h" ]6 J    解析计算机NetBios名。
& L( M$ R/ O0 Q* b1 z% |! s# k* R* B& M
    示例:
( N1 [" S- n) h" z" b( M5 t6 w3 K0 i9 [  L: }3 g2 ?5 U
    C:\>ping -a 192.168.1.21
' X, X# J  S2 ^$ \* @; h    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 2 s8 s7 K/ P" D; r
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
% {/ c, b. ]* m    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 8 X& z- F- k0 n9 J1 P0 Z# ~$ G) Y- T
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 : Z' H; Y$ n+ }$ W2 g- x
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
3 E1 G! S0 J- p$ C$ M% w" L+ \$ ]    Ping statistics for 192.168.1.21: + |% V0 o7 b% J5 v0 ?" h6 ^4 @. l
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: ; |) m2 Z" b6 L/ M. k
    Minimum = 0ms, Maximum = 0ms, Average = 0ms % z2 c1 ]6 ?( V) T9 _# z9 A
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 % M0 t7 _, R9 q
+ D. j3 T! y% A' |$ \" ?3 E5 O
    -n count Number of echo requests to send.
! R0 ]" `9 x6 a! P7 X    发送count指定的Echo数据包数。
6 D, q/ O2 \0 p! m2 [
! W  l- K" K3 y" x. ?    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:9 e( H0 E+ ]% E- G2 E$ J  r
% Y8 g0 }5 @( _& ]; V/ K, A) ]. l* d: Q2 O
    C:\>ping -n 50 202.103.96.68 , x) m9 Y9 D" X4 s' ]
    Pinging 202.103.96.68 with 32 bytes of data:
9 u% n& B/ r% ?4 `; b0 \' Z. L6 s( u  x2 w( O1 b( |
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
& `# u0 A4 X! u: N+ L" [3 {7 c/ m5 b    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
( v/ A! [3 e# f) X# ^6 F' U+ p" m    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 . ]" e- t, n# l% p; ?  m
    Request timed out.
2 E3 @  a( s9 E+ ^- B- F    ………………
3 Q8 n9 v/ z* n2 J0 T8 ~" U- b' ~( l2 H* H; ~# P% k: t- r
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
( L4 t3 g! }+ ^    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 , B+ y+ l1 y9 `( m( _4 A
    Ping statistics for 202.103.96.68: 9 I- x+ i3 S! z" l1 I* u4 {, U
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
6 N" @8 }7 d; O2 r& j0 r( z7 ?' }1 [ound trip times in milli-seconds:
! I& w6 X/ ~$ ~' v2 I4 [/ I, r, z    Minimum = 40ms, Maximum = 51ms, Average = 46ms / y  z/ ~& Y0 m3 F, g. |1 X
1 a! b! y: O8 e" ?3 V
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 / F$ n  M9 S+ Y1 |+ z
    -l size Send buffer size. 定义echo数据包大小。
- _$ V; }$ _& @8 m
, E0 r/ ?- I2 C# w( M, X    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)- \7 l9 s* z; J7 k0 ~2 C
" o" X7 f7 k4 R( r% f
    C:\>ping -l 65500 -t 192.168.1.21 9 t: L# ^7 P: [: q; _* [
    Pinging 192.168.1.21 with 65500 bytes of data: 3 R6 J$ R6 D* s8 D3 t1 W! U
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 9 D+ `& e! e7 R' m, W& u
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 % B* y, {) U7 K/ @
    ………………
$ V  e) n/ x7 O8 \( p
9 x! g5 n; b$ G1 H, P; v6 T    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
& h% C! s4 F: [, Z' Y  d. p- \  a4 }9 Q/ a$ V
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
9 ^. v. I" z5 P+ @+ B* y* f    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 # T6 p$ U# A0 C+ j/ G
    -i TTL Time To Live. 5 R4 T! A5 y) Y9 B
    指定TTL值在对方的系统里停留的时间。   L  c' p+ g- }5 H6 E
    此参数同样是帮助你检查网络运转情况的。 1 u# a( t! T6 F; v2 Y2 `. t6 R! C
    -v TOS Type Of Service.
4 v" n- d9 p$ T    将“服务类型”字段设置为 tos 指定的值。
% `* K, a9 w) x4 b    -r count Record route for count hops. 8 d% R! B( v9 S6 ?( ~  T! t
    在“记录路由”字段中记录传出和返回数据包的路由。
5 c: M3 g. _- {& h1 S/ Z& \" _7 m
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: & l& ?) ^8 `5 s0 E; B& c4 Z; C5 s
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) 4 X) x4 ~1 r4 B6 t9 T
8 |3 ~# S# q3 t$ y$ K( Z
    Pinging 202.96.105.101 with 32 bytes of data: : ~. V) p/ Z, d: r
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 4 b) @+ J7 g0 f) x* M
    Route: 202.107.208.187 ->
" R1 f! q' G- H    202.107.210.214 -> & w  ?) J8 }) b* Y
    61.153.112.70 ->
/ `. v  j7 \; d4 F, y    61.153.112.89 ->
9 f9 N- |. b$ S/ {' m    202.96.105.149 ->
' H* o' m2 l& `3 J    202.96.105.97 -> 0 x) L$ N& }3 C. Y$ X
    202.96.105.101 -> $ z! |, x4 t8 ?4 ^0 R& d; ^: w# x
    202.96.105.150 -> # v. P) w& ?: C. S  I/ [1 S
    61.153.112.90 & F& |/ d! q2 [9 V/ a
0 ^  q5 i0 i2 M0 T! u+ Z
    Ping statistics for 202.96.105.101:
9 ]( G$ h0 g0 d) R  o3 [1 Z4 r0 {    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 7 U5 W& s7 y9 ?0 I9 l, ]
    Approximate round trip times in milli-seconds:
* v+ w- f7 i) t7 o    Minimum = 10ms, Maximum = 10ms, Average = 10ms
8 m& J1 ^: S) f
, G, v3 H2 ^: A    从上面我就可以知道从我的计算机到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这几个路由。 * S) e* B9 {) u

: Q/ ]: u1 d: Y& n: d* G$ O    -s count Timestamp for count hops.
& x. d3 b# u3 W    指定 count 指定的跃点数的时间戳。 4 S0 U3 d) V$ p- ?
    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 , h) {, U$ U+ h; V1 V* `1 T
    -j host-list Loose source route along host-list. 7 N3 _# k2 z. W) `/ F" T
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
+ \/ S( K. o1 R: I7 m0 _5 }' p, d  X5 T. C; f* l* D
    -k host-list Strict source route along host-list.
6 S, e- @/ ^' |2 {# D利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 ) l6 N$ E5 e) [
    -w timeout Timeout in milliseconds to wait for each reply. : Z- t1 e8 `- \% r$ s: {+ x2 q
    指定超时间隔,单位为毫秒。 : q* y$ Z+ |. b  v  D
    此参数没有什么其他技巧。 2 T$ x& `/ z0 t7 j0 d' k! w: A1 Y

1 \. g- B9 a8 j, R( p" r    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:/ L/ A, S* O, n: L/ q& \
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 9 G9 c& ~1 d' b3 y$ i+ C
    "DefaultTTL"=dword:000000ff
# |" d. V3 U" I+ l+ y    255---FF 5 M9 s: R  \* n! Z
    128---80
! Z# y7 n8 ~* Z8 }9 T$ y  g9 ]    64----40
; Z4 \/ I7 b4 G8 _  ?" F2 d    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-9-3 22:18 , Processed in 0.023001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部