TA的每日心情 | 擦汗 3 天前 |
---|
签到天数: 2402 天 [LV.Master]伴坛终老
|
ping命令使用技巧
& T/ b% n- Y: w6 `+ S/ _--------------------------------------------------------------------------------
7 N1 r+ e$ E" h. g, ?1 ^1 d对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 - u, A5 a5 Y0 `; h, ~8 K/ H
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
: \3 K$ _* n/ \ping这个工具,也总结了一些小经验,现在和大家分享一下。 : b6 g& z) l" M# K) X2 k
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
: I6 l" G7 Y; u! k, _3 E在安装了TCP/IP协议以后才可以使用: / F, B, L+ W7 z9 \5 v
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
3 }3 V5 T9 d' |- I6 q* }count] [-j computer-list] | [-k computer-list] [-w timeout] destination-li 7 d0 ~: B, ]! m! P. @1 a% Q. }% J
st . n+ H6 _) u8 q4 A; z. Z3 w+ |6 ~
Options: # [, [$ z/ \& w h
-t Ping the specified host until stopped.To see statistics and continue - ty ' l6 C5 S4 @& ~" |" v* ]
pe Control-Break;To stop - type Control-C. , Q5 d+ v) n0 |4 G
不停的ping地方主机,直到你按下Control-C。 7 [$ j) _4 X' A8 `. l( B$ G0 x0 @
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 5 A/ K, V: u5 A
-a Resolve addresses to hostnames.
8 a0 n2 U$ _# f1 D6 v解析计算机NetBios名。
" K8 g- n' I3 O0 K, E. v+ F示例:C:\>ping -a 192.168.1.21 # `8 ~, F. V7 `" J# t& m8 i
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: " ?6 S k. e9 `9 W4 d) E
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ' ~) c/ A9 |" ~0 v, d* G
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 " l5 f( d! v7 E5 F( K
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 1 c" ?* F* c% D* v
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
1 `, U5 ]* m2 d7 V# P4 p8 o0 HPing statistics for 192.168.1.21:
! Y H: P0 h8 WPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t & @/ C% e4 [ g5 S6 {: k
imes in
8 d2 P; Z9 c! \" u5 w% xmilli-seconds: % U! V R3 u3 I8 X6 Z0 H, ~
Minimum = 0ms, Maximum = 0ms, Average = 0ms 0 |% U; A, q: {# {# L. G; L
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
) M& Q" D; k3 }' u8 b6 r% x-n count Number of echo requests to send.
1 m4 c1 _9 ~! D6 X5 w; o1 u发送count指定的Echo数据包数。 : _6 D# u, |: a8 h2 n/ Z. P9 @
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对
. G5 M; q ?' f9 S8 z衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 ( `0 A. V/ I4 c3 F# w
时间为多少,最慢时间为多少就可以通过以下获知: ' H5 i+ w4 F& f! S0 v# e1 a
C:\>ping -n 50 202.103.96.68
; V3 A* Q, P w" I7 o1 EPinging 202.103.96.68 with 32 bytes of data:
/ O; `3 v; W# qReply from 202.103.96.68: bytes=32 time=50ms TTL=241 I0 ?! Q3 s% O6 M* y
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 a: p9 g* D( R. f. z
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
/ c( o) n( ?. d# q" Y7 BRequest timed out. - d) A/ w! Y: f! Y- B
……………… + i$ ^0 ]- C8 R+ ?+ ]" V0 @
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 A5 o* X7 V# T6 r& ?5 v: p5 I
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
. a+ W$ M7 N) fPing statistics for 202.103.96.68: ; e! G' a% n" s* w% b, h9 G: V
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip ; ~, e- X C3 A- [/ a! q" y+ v
times in
; h$ V$ F1 x+ L6 Y1 Omilli-seconds: 8 r, b0 s' U1 o& B* ?) W- w5 x
Minimum = 40ms, Maximum = 51ms, Average = 46ms * K# H b; ~' i I% N1 j
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中
5 m1 s# v- A z+ \有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均 , F" f& h+ c# _8 q+ w* o7 [
速度为46ms。 9 M' k: s; H: ?7 O; F: u
-l size Send buffer size. ! V5 ?! `4 P0 n3 ^2 e
定义echo数据包大小。
% [/ t- c3 ?) I9 _5 ~在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大 " w/ X( v: h3 l1 I7 ]+ Y
小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到
! h& ~* P1 X( u; ~3 L' W65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向 . q1 s- G0 y, I0 }) D
对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解
. p5 x9 F0 z% O1 w2 S9 c决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个 % N2 Y% [0 n+ l' a+ B5 X A9 @9 o
参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个
( k& m) l% g5 Z& [' B9 F6 j5 o8 l: o带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上, 0 J2 x9 z4 Q. e
否则后果自负)
+ b1 E& D- ?+ G2 F- i& hC:\>ping -l 65500 -t 192.168.1.21
: l, ?7 B( L4 O6 |1 n5 r/ }3 sPinging 192.168.1.21 with 65500 bytes of data: - A/ d+ ^& j) K6 q& j, W
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
1 [2 } |3 M5 G' eReply from 192.168.1.21: bytes=65500 time<10ms TTL=254 9 g) C! o5 k2 L4 _* Z. D6 a# S
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, " S2 t+ W* F1 u! @6 N( z
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 , ^- ^5 |4 Z' \, R& C
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
) s/ U/ {" h. z b( g2 A; o) u统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
$ s7 W6 k/ G# D% R$ L+ e! c9 b2 l完全停止,由此可见威力非同小可。 1 ? \$ u: r o# _. C) n) ]0 b0 ~
-f Set Don't Fragment flag in packet.
/ D* M- L5 `. r$ Z# ^: r在数据包中发送“不要分段”标志。
- d: C/ L+ l* K+ Q) a4 Y4 D在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会 ' f9 c/ J: e0 {8 M6 S& u
再分段处理。
& B0 G4 h& |# [' u! y, L( y-i TTL Time To Live.
( [! |# Q. A1 U! F4 ?7 x& ]指定TTL值在对方的系统里停留的时间。
4 C: ?3 r- U6 d, m此参数同样是帮助你检查网络运转情况的。
& Q0 x3 J7 F% U3 C+ p1 G-v TOS Type Of Service. ( A) ~5 c7 Q: Y! \. s! p2 h0 \5 x" y
将“服务类型”字段设置为 tos 指定的值。
, b( ^, K/ q, E8 ]8 I7 Z-r count Record route for count hops. & ?# b% ^. b4 v& l6 c
在“记录路由”字段中记录传出和返回数据包的路由。
. e" \& f4 q, R2 \& ^0 T在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 - l: i# u$ Q" {$ S4 x3 X
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说 3 R2 t7 r3 G: w+ m" g* G
你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中
; }& E; v0 U+ ^5 v0 T8 F给大家讲解。以下为示例: ]2 a9 T8 w9 d4 U7 C6 }
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) $ {" V# ?* z R' j( N
Pinging 202.96.105.101 with 32 bytes of data: , i. r) M' U L
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 7 I# B3 X- h& `1 T7 \
Route: 202.107.208.187 ->
+ L, j7 T: O' {1 M- e202.107.210.214 -> ! R/ Y* H. N0 l3 f5 k& U
61.153.112.70 ->
3 F; X# h& M7 P/ |7 t: ]3 b61.153.112.89 ->
0 K: ~( b1 z3 Q; y% R1 p; Y/ K& }9 w202.96.105.149 -> 9 N$ a/ H: ~& X1 B2 h$ B9 C
202.96.105.97 ->
' }0 j) L' N: l$ W202.96.105.101 ->
0 R2 W! ^8 X2 C. Y# |202.96.105.150 -> # A. ?0 O8 D0 G9 d- @
61.153.112.90
6 S& _% ?4 g0 {7 c, J2 nPing statistics for 202.96.105.101: ' E% f( l0 Y. p4 D: p
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
$ ?8 Z" d% j8 Y7 o0 wApproximate round trip times in milli-seconds:
( X+ l; S0 z: E% v$ F: {: l, `Minimum = 10ms, Maximum = 10ms, Average = 10ms * U8 i5 r5 x6 j4 z$ M* H
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 1 }8 k* H) X4 R' {% l: Q; b
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
- u6 O0 b/ k7 O; @97这几个路由。 , X" w. e+ f9 O
-s count Timestamp for count hops. 3 x- K6 i4 W( d
指定 count 指定的跃点数的时间戳。
! Z, f( y* c/ ~2 S9 n( P此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 2 x# k5 L$ K" c/ h
-j host-list Loose source route along host-list.
0 w0 ] t9 I$ J: D! z9 W: r, L: L利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
v- u+ ^' e- `) P2 U2 D路由稀疏源)IP 允许的最大数量为 9。
, [: `" { l/ K; Q; P; O# t-k host-list Strict source route along host-list. 8 a+ j; m5 r( x$ o, p
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( ; J# F" W7 y6 w+ G! `
路由严格源)IP 允许的最大数量为 9。
+ W1 a2 h0 n5 z-w timeout Timeout in milliseconds to wait for each reply. 0 d. V$ h* Y( _* |4 y4 N9 }2 b% b5 R+ X
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 3 ~9 M5 I4 w$ [6 ?( a$ `
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
) t4 X0 T- O" _. C; l粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo 7 _6 L5 b/ W$ U( t5 W, h( _
ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 7 ^9 A4 q- @6 F" ?! @! H# }+ i
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修
% Y# F) ?5 ]! A7 ]改注册表以下键值实现: - E2 @8 N& g) r7 N* ]1 k
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
r* F4 W0 D* y2 o; a3 n* f% _3 ~+ I
"DefaultTTL"=dword:000000ff & y T- R% X* I; O% k
255---FF * R! v0 C2 g+ g6 Y: t' ?, L/ s" f; D
128---80 ! e, v* z; Q' H! r0 n# a
64----40 5 r! d4 Q- H( m0 \ ~
" R3 N% O0 S, p/ {
7 F5 G3 K( Y' u( A' v+ M" c2 \* a! n, U7 O/ z
|
|