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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 % }; B( }; A/ b7 }6 p9 x3 E

8 \$ P+ Q& r6 a: H5 j* i    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
- Z% g, E6 H3 g, H8 O* G% L+ j
: V: V5 [6 x6 T& W( X    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
; w/ d8 \7 V. t7 _  o# U  g- r! p) _; l* ]. r6 `
    Options: ; E9 y! v) s+ L* V
    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
6 s, x6 w4 i0 `0 Y, Q$ z0 ^2 g, D. h- C    不停的ping地方主机,直到你按下Control-C。 ' q8 ~5 M( A3 b9 y% G: `) m
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
) n# \$ r9 u- O6 k    -a Resolve addresses to hostnames. % ?: P7 T7 L4 z- q7 u' {5 Q7 a
; q. n, A' L  P% C, w
    解析计算机NetBios名。
1 C# |! b' T2 v/ M/ c' U! E* |/ h0 V% S) a2 q
    示例:
$ T* f# c+ Q! p" d, ]5 F
" Y/ _% O" p  c    C:\>ping -a 192.168.1.21
+ T6 N0 w; R4 a8 J. D( K    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ' _; [) v5 D( `# u
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 M/ F4 }; F! G/ Y6 z! d    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 , m. O  L) m  l
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254   N9 z9 Q; B; X" V) N1 t$ Z
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ( f# H+ [# c3 I) ]
    Ping statistics for 192.168.1.21:
9 J5 q3 F7 v) U$ c    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
! @- h3 ?: u8 [- N    Minimum = 0ms, Maximum = 0ms, Average = 0ms - T6 Z8 f1 u$ p* A; o
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 - q6 r; ?, P  F& A1 v& L* D

& n. `. Z, P- ]! i  Z# Z- Q    -n count Number of echo requests to send.
2 c& Z% r- w: i/ }8 m    发送count指定的Echo数据包数。 2 O* E6 [$ _  p9 ]! ]

) X" A, R& C5 U& A" \3 ~    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
+ F2 W+ x# t; b# e# d
9 G: q/ s3 L9 i$ I7 e    C:\>ping -n 50 202.103.96.68 * q9 D3 E( D/ Z' U3 f
    Pinging 202.103.96.68 with 32 bytes of data:
3 _+ a7 M+ y; l: S) s. ?9 m
$ R% D8 Y2 e4 N+ |5 v/ j& F    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
( V& m+ z- Q! f    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 1 q4 M4 `6 I& f- E) Z
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
! f  G+ c  E) H    Request timed out.
7 ]" ^2 R3 Y  I% U    ………………
% j- \/ K  P7 e1 N: n6 U( [5 h3 M( v# q2 Q* d7 e
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ! a4 U0 R! ^, U
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 f! B9 F. B! J8 U
    Ping statistics for 202.103.96.68:
! w3 J( t! m3 z* b9 v& U! C    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 9 H0 `* t7 D& O0 {( j% `
ound trip times in milli-seconds: 5 F3 ]1 ^% Q1 X7 D
    Minimum = 40ms, Maximum = 51ms, Average = 46ms # X. I6 W4 \0 e

! k; x5 F3 c) D4 f+ Q& }    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
0 D+ P* U* v/ y# J  m- X5 Q    -l size Send buffer size. 定义echo数据包大小。   b$ W5 S8 ]1 h7 r
9 ^+ ^7 Q. W! ?! [  x; v# \' \9 J
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
: ~! d! v9 q2 `# j3 m
. Y' i( x) _! V) G. s- E    C:\>ping -l 65500 -t 192.168.1.21 " X8 [! o6 z4 D1 o2 I! W
    Pinging 192.168.1.21 with 65500 bytes of data:
! t% k7 ]3 z) X7 T* _; R    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 3 _6 B/ f  w. y0 w
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
. V" A, s5 S5 }- O; g    ………………
# ?" F4 v6 p$ C3 P+ Q
0 v" i! ?$ l; R5 K# z# c    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
" C6 s3 K  Q: c. y& D6 G/ E) r; B4 E# h
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 " k, x; N# k+ o- J; I6 w
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
( b. @  G# c3 X1 A$ L: H8 U0 O    -i TTL Time To Live.
' }6 s  v4 H9 A0 a* ~    指定TTL值在对方的系统里停留的时间。 3 Y- |2 @+ V: s3 n) w
    此参数同样是帮助你检查网络运转情况的。
; E% d; K( a* L* Q    -v TOS Type Of Service.
% {3 u: d0 J% {; R  O5 J    将“服务类型”字段设置为 tos 指定的值。   m2 a* s9 q0 ]& C$ A  e
    -r count Record route for count hops.
+ L/ Z+ M( X* L  r7 H. u  j    在“记录路由”字段中记录传出和返回数据包的路由。
6 R) Y+ z3 E9 o6 B- q9 ?- C2 ]* l' F* _; ~6 G
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: 5 ~! C# Z" W3 a3 O3 b
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
/ L/ E, c, X+ f9 p7 Q* P! |
$ U& x9 I. ^- `! y    Pinging 202.96.105.101 with 32 bytes of data:
9 e; T" k, S" i0 q6 y* \    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 : q! [' l# n  v+ j& o: Y
    Route: 202.107.208.187 ->
5 x& m  D9 x7 d8 A9 _1 G7 N    202.107.210.214 ->
' P; v: M: L' s: h! P- Z6 v7 g& ~    61.153.112.70 ->
+ v/ M4 m3 @, a  S4 g    61.153.112.89 -> : b$ D/ J! @% K9 t6 p
    202.96.105.149 ->
, ~6 N) {- A1 x9 ^+ b- Q4 r    202.96.105.97 -> : X' L- Z( W$ m4 ?3 _% R% b
    202.96.105.101 -> 7 f4 e4 k* X- G! K& }; X/ K  I
    202.96.105.150 ->
6 s7 O) r# s6 y5 S) ?- f    61.153.112.90 0 ]2 j- A$ C! d  t
/ x# T  Q; S% U6 N  S- d, W
    Ping statistics for 202.96.105.101: 7 o5 F1 ^5 U0 W# o
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
( a- q. p- e( o7 B4 i" h  b    Approximate round trip times in milli-seconds: ! i, O# t- \3 P6 d; h
    Minimum = 10ms, Maximum = 10ms, Average = 10ms 5 ~5 }0 l- b' W6 W3 o# Q; t
+ A, K! x) ~9 `' 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这几个路由。 & W0 W. i! B, g" g; E1 N

- N" Y* h  I# ~1 M    -s count Timestamp for count hops.
' S# D9 e0 k  ], m* t" }* l6 t    指定 count 指定的跃点数的时间戳。
+ T2 E. ^: B9 d0 v: r9 i    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
5 l% E, K) M) v! x7 P    -j host-list Loose source route along host-list. 7 H( I& C) p5 Y4 k% X5 \
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
/ f* M* T! o. B' s
$ U$ G' o5 ~+ U/ s( I    -k host-list Strict source route along host-list.
/ d. _# {- a, U& V利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 5 ~6 ?6 x6 I. p$ C. l& S
    -w timeout Timeout in milliseconds to wait for each reply. 7 ^! G: B2 h3 S7 W
    指定超时间隔,单位为毫秒。
! D% }3 l. G. A- G    此参数没有什么其他技巧。 : w0 V# d9 s, L' ^& [0 k9 {

8 v+ B+ w# ?* I    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
' x6 f: @; s6 D! G5 a    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] * ^; w5 Z8 [. `; q# O. M
    "DefaultTTL"=dword:000000ff . h9 B% o# p4 l
    255---FF
+ u; o# l  {' n* z- W  S    128---80 * w- h! h( A* l1 \. z/ p
    64----40
" R, r* n2 q- c4 L1 c. _5 x7 i    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2024-5-22 01:34 , Processed in 0.015600 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部