TA的每日心情 | 擦汗 6 天前 |
---|
签到天数: 2402 天 [LV.Master]伴坛终老
|
ping命令使用技巧
# n5 n3 `4 Y4 ]9 I' [7 l--------------------------------------------------------------------------------
# e4 F4 u. P6 t, q4 c对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的
2 @- E. H; m: }1 Q, P人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
3 O1 U' H2 Y" C% y2 B: p( \ping这个工具,也总结了一些小经验,现在和大家分享一下。
, G/ U5 m8 X) f2 `/ y5 v% G现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
' X* q9 g+ V+ s- P* |# N7 M" d在安装了TCP/IP协议以后才可以使用:
! u) x% P. F& }& j6 B! m% Xping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s 4 U/ w/ \/ ~7 u( V6 W5 W
count] [-j computer-list] | [-k computer-list] [-w timeout] destination-li * K6 K. A- J! j
st
4 ^9 i4 i: R8 N x4 N1 X' \Options: 6 z; Z! X% S9 w" i" z* X
-t Ping the specified host until stopped.To see statistics and continue - ty 2 ~ Y+ E, U3 M/ X
pe Control-Break;To stop - type Control-C.
' T6 ?& x2 s0 [6 a; T% T不停的ping地方主机,直到你按下Control-C。
! D, q/ f$ U! ^此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
+ X) Z9 G: x3 u6 V8 I! b7 N-a Resolve addresses to hostnames.
+ s$ |" n, q$ K) r$ C" b3 W解析计算机NetBios名。 - K5 ]% W: [/ I% f8 @" j/ h
示例:C:\>ping -a 192.168.1.21
% Z1 D7 B" d) ?: ~, ~Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
* U# w& B# s- o \- oReply from 192.168.1.21: bytes=32 time<10ms TTL=254
/ n- d; ^2 u4 z' l% U! _Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 5 G1 S' H! E n) I* j
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 3 ]6 g! ]8 h2 |- I& T
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
! S. r! g3 W3 @! r( m4 mPing statistics for 192.168.1.21: $ I h5 k) O2 q2 O5 M! q
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t
( j, t, ], E3 k! d0 k! j% qimes in - L0 E$ N! x& `2 \4 @! p
milli-seconds: y, Z2 M1 I! q" v' F9 J
Minimum = 0ms, Maximum = 0ms, Average = 0ms
0 G# I2 e# W- g' K- I从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 7 _) A/ C; \: I+ C
-n count Number of echo requests to send.
7 E8 M+ h6 e( E发送count指定的Echo数据包数。
4 R* ^, D2 t) V' W# R% e8 @0 _* G. ?( }9 M在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对
2 s# c `8 N& V) ]+ e0 I衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 + Z: _6 V* x! }' K. M
时间为多少,最慢时间为多少就可以通过以下获知:
3 m h) n# q$ D' rC:\>ping -n 50 202.103.96.68
: K8 c, m: Y8 F; @, k% cPinging 202.103.96.68 with 32 bytes of data: - a2 J7 w/ _0 F4 Y+ R1 x! ]
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 - G7 n0 y. X: Z/ b$ u% t$ B$ {
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 ^8 ?- l5 ~4 x8 ?7 ]; [6 lReply from 202.103.96.68: bytes=32 time=50ms TTL=241
d ?/ k d J i) M! ^Request timed out. # W2 _1 u' V# k* y' a7 ? O2 q
……………… $ W7 z& I3 ]6 e4 @
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 \* w- F0 g0 f. g9 W9 w8 z
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 u- I9 L- c- D( q4 WPing statistics for 202.103.96.68:
0 v. ?3 u' ?! X0 j- G5 i7 ]) ]9 JPackets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip / H, z1 ?/ c, T. g
times in
, _1 O+ w( z8 w9 d( mmilli-seconds:
7 R- ]2 v- z8 Y, i# x1 WMinimum = 40ms, Maximum = 51ms, Average = 46ms
# S5 L) p7 p7 ? v+ I从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中
" w: b, S( Y/ L4 p. \/ m有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
- Y' @ s: m- C7 ], K' q8 d9 u速度为46ms。 A8 R$ O/ n% | u% x5 O
-l size Send buffer size.
$ G, P K5 i! t, N! x8 d定义echo数据包大小。 6 Q# @. d+ C. G4 N. a8 j
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
* n+ s7 j2 @! w小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到
# U4 Z) d: z1 \65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
; v* K% |" l& E5 q& [: s对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解
: p3 s$ k* a$ ~0 z0 Y. ^ a# V决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
2 [8 ~( O6 w8 Q. I参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 2 p% [+ n+ c9 I) Z/ ?- b
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上, 7 |, C0 s: ` g7 I
否则后果自负)
! j( X9 C* s [2 L; ^C:\>ping -l 65500 -t 192.168.1.21 + I$ N7 M% ^" |
Pinging 192.168.1.21 with 65500 bytes of data:
6 e6 ?+ X N @. x, G( Z6 NReply from 192.168.1.21: bytes=65500 time<10ms TTL=254 " V3 _1 [. `. k) l" d7 \
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ( p( y4 c- S$ e) T! n5 y1 l
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,
* ^; a" \( z- F; s3 H4 B如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 2 y( H4 P& |6 M: w$ L& [* m5 o
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系 ) {; m9 ^. Z' i l0 x
统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务 * Y4 y }6 m2 Y9 A% T$ y/ @
完全停止,由此可见威力非同小可。
+ o# X9 j2 @% v; f4 X3 k: s- p-f Set Don't Fragment flag in packet. ' H$ K d3 A! Z' H2 [) P' Z
在数据包中发送“不要分段”标志。 - v2 W; h: d* X4 n* P# y+ {
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
3 O: q* Z& K, d+ N5 G$ |再分段处理。 ! M/ @) C1 r( r$ o& Q% Z( l5 F
-i TTL Time To Live.
9 o- \: x) Z' _5 I1 v指定TTL值在对方的系统里停留的时间。
( k( l6 h4 k& t6 u2 l5 @$ a+ p此参数同样是帮助你检查网络运转情况的。 ! N; d& z2 a5 c) ], H2 u
-v TOS Type Of Service. , T! X- F6 i/ t2 B; o
将“服务类型”字段设置为 tos 指定的值。 2 O# `4 x, G4 S5 b5 Z
-r count Record route for count hops.
- o$ w) \0 `3 N) N$ J2 Z ~在“记录路由”字段中记录传出和返回数据包的路由。 - M( ^6 w# U. y$ B& ]/ M9 T
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 $ x1 ~ `) `* N) p6 ?) _( ?: W
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
% n: A0 e4 J9 e G# v" y* J7 M你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 * I" X A4 o! o/ s( P+ O8 ]
给大家讲解。以下为示例:
- m0 N+ m( s0 R: }: o/ m' [C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) - |" U Y1 t: z9 y9 A% c$ K
Pinging 202.96.105.101 with 32 bytes of data:
, T7 ]* b4 i. RReply from 202.96.105.101: bytes=32 time=10ms TTL=249
- g, a5 N% `( ^0 d" y3 e) @! QRoute: 202.107.208.187 ->
& P* u, @& Z( }+ |- c202.107.210.214 ->
1 T0 p* M- P$ ~3 n61.153.112.70 -> ( ^4 J& `5 Q" r/ ~
61.153.112.89 -> 0 P+ p6 p! ?9 s+ F
202.96.105.149 -> 3 F' y& A; w' C' _; u. `" s, ?
202.96.105.97 ->
- X- P' O0 V; } ?202.96.105.101 ->
" C% G- D; U* z' R$ S202.96.105.150 ->
) T5 A2 A2 H ]8 P- j5 {61.153.112.90
4 v, t& b# S) r- E6 Y. DPing statistics for 202.96.105.101:
( H" j* w* ^% W7 O& {" UPackets: Sent = 1, Received = 1, Lost = 0 (0% loss),
9 ?+ I+ y. K9 A- e- [Approximate round trip times in milli-seconds:
8 m( `" j9 u1 a- WMinimum = 10ms, Maximum = 10ms, Average = 10ms 1 ^+ L5 ?3 h1 x& s% M$ p
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20
' M; _, m# `4 d' `1 ]. X2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
# R x9 f4 r9 }97这几个路由。
0 \6 ]$ h* x8 K1 d9 Q e-s count Timestamp for count hops. ' s# z3 ~3 D* a
指定 count 指定的跃点数的时间戳。 : n+ B4 t9 v& s) {9 |/ D
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
* f1 z6 [0 [2 A( z: ], |( W) F-j host-list Loose source route along host-list.
/ L& ^8 p) q/ I/ e9 L% G. a8 D利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
7 a# F F. L: k7 S; D路由稀疏源)IP 允许的最大数量为 9。
& ?/ j) |& _' `: t-k host-list Strict source route along host-list.
% k7 o4 i8 U* z! t5 X利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( 8 H i5 z* w& G* O$ d+ E; D& a% O
路由严格源)IP 允许的最大数量为 9。 ! `' q$ N& Q( _' n( `- @6 z
-w timeout Timeout in milliseconds to wait for each reply. * X% D2 O; u' m+ ]6 y9 R3 R
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 4 z9 y( E9 I; }" K
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
6 G$ N9 i& n% r2 {7 B粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
1 b7 Q! J* |) e' H; |7 m4 [- j! \5 ]ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240
; o; m( p* l6 x6 S1 [-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 9 A( H4 m9 Z8 s
改注册表以下键值实现: 4 m4 \# u2 M! i8 R
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
4 X) j2 i" y# z
* Y2 H0 @3 J( R8 Q9 `" F; B; U% P"DefaultTTL"=dword:000000ff l1 d& I% J; z) e5 ^
255---FF
6 ] T' s. x7 K7 ?. V3 w& A3 } 128---80
9 U3 |8 W( O2 |6 y# z, `, ~ 64----40
$ q+ f3 p. y/ F/ ] R1 p# i% f+ D1 y
7 Q" y9 ] h1 n9 C& R( k) I0 R
- l8 @7 ^' o+ s4 g |
|