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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 ) Q9 m* i- D& ~+ O9 G
7 y$ E6 ~) h( f4 F! E
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:& F4 n* [( \3 G4 u" N

& X. ?& Q5 \, U% f+ ^9 }    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
2 o2 r3 A) `6 D4 Q4 k  e, S* _8 {/ J  O7 k- q! ?, k
    Options: ' l  R5 U& N* |4 B4 c* N
    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
$ d: \( Q; ^: J+ V' f* U    不停的ping地方主机,直到你按下Control-C。 9 d9 o0 q; H4 c; g6 Z; I; l
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
4 c( @4 ~2 m( [+ D    -a Resolve addresses to hostnames. ; W! U4 f0 F, O/ O
' E3 q6 T" P1 l+ f
    解析计算机NetBios名。
2 C9 u' K- T; V% E. t+ f0 R2 Y& }# x6 ?6 b) N. Q* q
    示例:3 k+ G  e( V9 }

0 b9 ~$ }) }# M) p+ q7 K$ V    C:\>ping -a 192.168.1.21
) \3 @3 b1 X& C. C2 w" L    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 6 K- p" b, z( V: e0 r# c
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ; a" I0 u' ?4 i" X1 N+ @
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ' G& `% R) `0 q7 w/ F4 t
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
  O+ W; K  {. b8 U    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 / f- n8 }% h* ~. z. h  Q  @
    Ping statistics for 192.168.1.21: ) t! C' ?5 v5 i: v8 H4 N. D: n; O
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 7 \& a" s+ [4 m. M* }
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
5 d/ J/ }! d$ R    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
+ M' w, X5 c8 p- x, F" B# Z
1 G! U% h( K1 q" P0 d    -n count Number of echo requests to send. 8 K7 `: s/ I+ @: C9 h4 \2 p
    发送count指定的Echo数据包数。 6 G. R' c3 Z4 X3 u1 u7 `

% ^, z, Y: g3 c; b2 N0 H+ l    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
) i) E" _+ ?& u8 ]+ r+ u6 @
7 S& _% m9 ]7 @1 M" H    C:\>ping -n 50 202.103.96.68
7 ~# }$ b0 ?/ q6 Y! b! P+ t    Pinging 202.103.96.68 with 32 bytes of data: $ L% X3 @" k- q  p
, @# |% r1 f+ g' s( _
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
; V2 i5 `, p3 x5 q% }1 _    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 : R6 Y( Y) p  b& n7 U
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
" ?6 L% f8 k; E+ @& @/ Z1 e$ P- k    Request timed out.
& n" {8 H) L: a9 W& X" M1 P4 k    ………………
% y. l* r+ Q5 Y( |! I# J7 k
* E$ `" W% e0 T0 g9 C    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 g0 d9 \6 U( S! n; ?- V
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241   y; n! T4 q, e
    Ping statistics for 202.103.96.68: % u; y3 j7 S5 C) W% f3 @) ?
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 9 W6 ?8 C6 p' z
ound trip times in milli-seconds: - y; F7 N) g& @. F$ c; j
    Minimum = 40ms, Maximum = 51ms, Average = 46ms 7 G' Z: s+ W/ _/ @9 P. F

8 N' L' U: D7 N: H: J7 n6 C    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 6 U; u" z' N! }
    -l size Send buffer size. 定义echo数据包大小。
) c6 g  E, l6 B+ i# u) U0 @  t- d. O! S' _5 W
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)4 i  M2 u' G( ^4 ^* u& }
0 Z5 Z6 d, V3 A$ y8 i1 a
    C:\>ping -l 65500 -t 192.168.1.21
' V2 V. k" j, }1 U8 f    Pinging 192.168.1.21 with 65500 bytes of data: $ k0 O: [3 |1 d: l9 ~7 q/ B
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 . E( v' J4 |4 B$ G* |
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
. l! O4 r8 I  E% U+ \' E    ………………/ `" k* ?) u6 a. w

0 F% x- J# L3 i9 [& F9 A    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 # l+ }) w! q8 Z/ ?- \- j+ f) |
  J: F; i" \; W8 Z2 ?2 ^
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
8 v7 H8 v" m: N" C) z, v    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 , d; q' c8 S: A! |1 E' C/ W( Y
    -i TTL Time To Live. 3 _2 a! A3 ]$ c
    指定TTL值在对方的系统里停留的时间。
3 b7 i- m0 y6 E0 t* X  [* I    此参数同样是帮助你检查网络运转情况的。
: T) c# b* D* q3 d1 o$ S4 R    -v TOS Type Of Service.
' O9 n% i5 w' f5 ~  m+ ?6 Q5 q    将“服务类型”字段设置为 tos 指定的值。
: ?/ R0 z7 B5 z* t1 i* F8 T6 A    -r count Record route for count hops.
. R/ J8 }" C6 x; o, {! [    在“记录路由”字段中记录传出和返回数据包的路由。
8 ~/ I) }4 r& ^- a* ~% T& {
( _% {' n, }: G" [    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
. J  \4 O; N" e- A9 |    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
* N& x# m9 F- y' t# D! O  }5 n/ B0 L5 f/ u/ q8 h5 S
    Pinging 202.96.105.101 with 32 bytes of data: 7 z  D( \/ U# M( o
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 & i- Z5 P* S' A0 [
    Route: 202.107.208.187 ->
+ U: m8 p9 u4 {8 A    202.107.210.214 ->
* v$ \) z" L2 |    61.153.112.70 ->
! A9 G+ ?5 o" @/ S* y    61.153.112.89 -> $ K5 p( [) [3 \% R+ p8 P: |
    202.96.105.149 -> # B! e- c% u, ?2 s/ z* V& q
    202.96.105.97 ->
* s3 M& y9 d/ v9 u* Y/ ~0 u    202.96.105.101 ->
. ~# e& r) \' G( j, B2 c) M    202.96.105.150 -> , f1 K% [3 ~/ T0 S
    61.153.112.90
! N" D  c' s2 o$ V) D
& Y0 |8 F0 q5 X& X5 W5 m    Ping statistics for 202.96.105.101: 7 w, |+ J  ]5 J, G/ z! B
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
' c  f- _/ |/ ~  ^: F+ R    Approximate round trip times in milli-seconds:
! P1 a3 @0 m! ]. M" q3 W9 k9 }# p2 I$ H    Minimum = 10ms, Maximum = 10ms, Average = 10ms - k& j2 u: a2 g
5 {) ?7 v( x7 a0 A0 B
    从上面我就可以知道从我的计算机到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这几个路由。
9 @! E( y) h) \- `& A
. P1 }) ?; e: Q4 ~    -s count Timestamp for count hops.
3 \& F& S' f' `1 f0 I    指定 count 指定的跃点数的时间戳。
6 \1 c4 D) d" }# x; S    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
) u6 ?8 ]6 G* u' F$ r, d: T    -j host-list Loose source route along host-list. 7 `( X& P2 B4 A& t- p: @
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 0 P' R& J, R4 m3 }4 I$ I
9 s" j7 A7 _+ P$ C% `
    -k host-list Strict source route along host-list. 2 d# k9 f% C5 i5 A4 N
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 ' G4 w% @+ o4 w5 o
    -w timeout Timeout in milliseconds to wait for each reply.
1 h( _+ D& \" B    指定超时间隔,单位为毫秒。 . H$ v5 W+ N3 v8 u' Z/ l
    此参数没有什么其他技巧。
5 [: ?/ ]& @6 e4 `8 U  F  \% {4 C. b, ^$ Q2 v0 `/ b
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
- ^3 g" x/ N5 u" g0 U$ Z- V; n    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
( `1 }* }  b5 I9 x) c, ]    "DefaultTTL"=dword:000000ff
$ G8 f9 A' h7 I" w    255---FF
+ s2 M( p' G2 c6 B1 ~) C% i    128---80
5 a  f( `- ]! U7 I1 r6 J! e8 ~    64----40 & _/ a) N& I1 N; ?; T& ~) w: q/ G
    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-7-16 19:01 , Processed in 0.023001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部