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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
- u2 o& x3 _& u; s5 C
7 T- C2 w' @! z    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
1 ^9 v4 {6 y/ R( W5 [; R( l! x4 L% ~4 c4 O; ~
    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-list3 l- f- D$ O: f- ]3 ^
3 O, T) r. p- s) }) z
    Options:
5 P) b9 f2 f0 Y' L0 y; F    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
( s. v6 Q% Y& @* R* \, a& y5 D    不停的ping地方主机,直到你按下Control-C。 3 U7 M( a5 b8 z
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
1 Q7 s3 f. }6 M5 q, g9 I; t$ i    -a Resolve addresses to hostnames. . {/ h0 o2 g# I' v

! |  x  D$ e4 J    解析计算机NetBios名。
/ I1 E, d# t% W: {
' W' |& v  E2 l. y$ o2 ]" g    示例:0 }1 X$ Z! r  [
& a8 V& P! u  b2 v( N- B# |
    C:\>ping -a 192.168.1.21
1 t* V/ z' H8 l& L3 F1 u    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
, ^  Y3 ?! Y7 U9 S# x) y    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
; q/ D6 |! D5 A5 R+ \9 x    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
& o- \& V6 {8 @* y    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 - s1 a3 l9 Z" B% t6 g7 R% k* O5 m
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
0 N9 K5 v& V! F: ^2 T  w4 @8 u0 q    Ping statistics for 192.168.1.21:
6 W! m% w& f; P( a7 z2 P  g  _    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 1 b4 ]' m8 m. Y. i* G$ {- d& T9 ~
    Minimum = 0ms, Maximum = 0ms, Average = 0ms 6 ~$ K7 A1 S3 ?) K* x
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
2 b: h9 ]+ f8 |; m7 k' U2 t4 }
5 s. Z; \% H, C4 F+ L    -n count Number of echo requests to send.
* ~& X5 o# l( Q7 [    发送count指定的Echo数据包数。 / Y$ ?4 c- d+ e$ h/ x/ ?
* N, {! s! Q6 x/ ~
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:& d5 j2 t  d6 h7 x

( K' V0 P, `9 f" k& t) ~    C:\>ping -n 50 202.103.96.68 % p+ ?/ k! p( P. C8 F
    Pinging 202.103.96.68 with 32 bytes of data:
+ L9 \  I, _2 Y/ F3 p" F5 U% \9 o3 X, g" D9 i2 f1 R" ]0 K' a
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 w% V" n: S; Z
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
6 F- f8 J& W- r/ q    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  _: k+ x6 k3 [/ L+ e. G1 q! w    Request timed out.
! W3 B4 U5 O- B' y  d1 u' Y    ………………
7 V- w$ K1 ^$ t# g" \1 p( v$ N. P) {$ j% V& E9 r. G. ]
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
9 ?' F( K) h/ V3 E2 V4 o9 t    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 M  l: V6 G; |  Z2 g) i    Ping statistics for 202.103.96.68:   p7 @7 q; Q& f7 `$ H+ F
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
/ ?7 S: q0 I4 C% Q6 I  Kound trip times in milli-seconds: ! Z7 O9 A9 \: [0 o$ E4 k7 R
    Minimum = 40ms, Maximum = 51ms, Average = 46ms
/ F3 }* r$ M  w! S- Z9 S. h( _4 y* R5 Y5 u$ `" M( X: u
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 % p, w( G4 y3 q
    -l size Send buffer size. 定义echo数据包大小。
" H  k9 }- g6 f4 W; O  C1 s4 }: @2 D& b; R  \
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)+ f+ Z4 s$ m1 Z( D8 N

+ b6 E3 H$ i* A$ [: l2 `$ f    C:\>ping -l 65500 -t 192.168.1.21
( h- e! _. a2 W& U' l# W    Pinging 192.168.1.21 with 65500 bytes of data:
, P  w' O( s; |    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 3 r  f( [4 ~- I  o' s# Q9 b
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 . _6 A( F( t  W4 f- m7 \. e
    ………………) h# l' V: I  _- E! J2 Q& A( M+ l

( s# K; |3 p6 B# }( j    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
! }1 K# T! R0 S, x$ U5 J
2 A2 g1 o( W0 R: \- y# J    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
' Z' x4 k3 ^: w7 a    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 / b: Y9 i1 O9 P
    -i TTL Time To Live.   q8 R& B0 M1 V1 Z
    指定TTL值在对方的系统里停留的时间。
3 z+ U1 }3 Z7 Q; X0 h    此参数同样是帮助你检查网络运转情况的。
9 U& p4 I: F. {1 ~# ]2 I' V) N) I    -v TOS Type Of Service. / B) [+ v- W1 w
    将“服务类型”字段设置为 tos 指定的值。
- ~  d  c& ]! ^. x5 k4 Q: {    -r count Record route for count hops.
" u8 a. R& a* u$ W$ D    在“记录路由”字段中记录传出和返回数据包的路由。 1 A# u9 k! n! ?' k6 `' U  v

! l! K& C; e. W% q# f    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: , c  a% |+ C/ Y( F7 ^" J
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) $ j7 ?+ E' `0 h

2 ?0 d/ a& T! J: o' ?    Pinging 202.96.105.101 with 32 bytes of data: 7 [. @, S+ H2 D. A8 i: t
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
( I: t9 k/ g6 F  m* _9 N5 E    Route: 202.107.208.187 ->
/ v1 v5 m( B& Z    202.107.210.214 -> + r& ]. v0 q; e
    61.153.112.70 -> 8 c" `+ `5 A9 {+ \! @# X+ P  D% W
    61.153.112.89 ->
3 Y4 B1 n/ S* V2 L# M) O7 U    202.96.105.149 -> 4 e- R. ?3 b( Z* Z" j1 \
    202.96.105.97 -> 8 X9 U! O4 w' {4 @" n, v
    202.96.105.101 ->
! }- I9 X+ k& [% @7 s, M, V    202.96.105.150 -> & n4 ~+ n- B- V9 \
    61.153.112.90
4 W: G# m7 V! ~/ [
# c5 w6 e$ O, n' [) r    Ping statistics for 202.96.105.101:
) j% v# O9 ?' t9 O. G: x    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 7 W5 z+ K. O) \
    Approximate round trip times in milli-seconds:
+ u! B" q6 e% d1 _( d3 n2 d& o    Minimum = 10ms, Maximum = 10ms, Average = 10ms , I, w( z9 Y6 W, A5 O

2 Y1 R  t6 x$ U+ u, M3 B% S    从上面我就可以知道从我的计算机到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这几个路由。 # P9 U, S, \, W7 K4 w3 V

: M" L6 u' X+ G% l2 J% O3 B2 b  Q, z0 k    -s count Timestamp for count hops.
! c+ k  O1 R) j6 h% q+ d    指定 count 指定的跃点数的时间戳。 ; V+ [! E; X0 R7 _) u. {* n3 x
    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
  f, [. p! W# T, {0 |* b    -j host-list Loose source route along host-list. , n1 R3 L; o- F) s8 a
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
( O, ^8 C; K! t: M1 y. d# J* e5 \6 u* o
    -k host-list Strict source route along host-list. ; o, y4 I( a1 a: J" H  Z
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
1 R. T9 u0 N% u+ D' |# }* C    -w timeout Timeout in milliseconds to wait for each reply.
& e1 G  n0 m/ C    指定超时间隔,单位为毫秒。 ; Y: [, @* Q( G: D2 L2 T
    此参数没有什么其他技巧。
- p( j) {/ n9 P4 d2 `. Q; H, L" N6 _5 I5 _, n
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:: K; A; Y* b- r' r
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
, ~6 b% q1 Y+ p  I" x2 [8 _    "DefaultTTL"=dword:000000ff
' Q  B' K9 }; N# l$ s' f    255---FF   n5 m: r8 Z2 M6 H6 v2 a8 g( z
    128---80
+ D. P! v: Q- J# ]+ M) k3 K9 W    64----40
8 {, T2 e; n3 O    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-9-4 01:53 , Processed in 0.022001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部