TA的每日心情 | 奋斗 昨天 10:07 |
---|
签到天数: 2385 天 [LV.Master]伴坛终老
|
ping命令使用技巧
/ M( \" e/ f- N" C0 D/ m--------------------------------------------------------------------------------
( O9 S7 p$ \4 V; _对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的
9 [3 s* @1 i$ z, f' L3 [人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用 ' N5 u' ?) K* F; g
ping这个工具,也总结了一些小经验,现在和大家分享一下。 & y. j! ~/ u3 I) i! |4 ~ z8 \) s2 M( u
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
" e$ B% s3 a$ Y. ^- s5 w0 O9 Y在安装了TCP/IP协议以后才可以使用: / X) M z' q* I; R+ Y! E! M
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
5 {+ X* b. _4 s, F' Rcount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
8 u$ E: E" R5 z+ q1 b- Mst
1 D0 u* [" d% _1 d+ COptions: + c0 A) d* d9 h7 Z7 |, k. E
-t Ping the specified host until stopped.To see statistics and continue - ty
5 U9 h) V: o2 `/ c8 hpe Control-Break;To stop - type Control-C. , o) p" ^" ?# ?
不停的ping地方主机,直到你按下Control-C。 , w. C/ ?0 ~2 }) s6 A8 `. T. |
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 2 p8 _9 W/ w0 j" n0 A2 d+ d9 y- g% I" J
-a Resolve addresses to hostnames.
4 |6 X% z% ^; n3 @! j8 T8 G解析计算机NetBios名。
: J. {. q. U. [/ O示例:C:\>ping -a 192.168.1.21 # `7 ~* I7 g: r* E ]
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 5 B3 \* X! V- M) B( C
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
! M: c$ U4 b+ S0 v9 K) L3 @Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ' d9 i- ?' |5 z% B7 B+ H- b D
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ; r5 N3 T6 L, L6 T$ X- T$ Y, I* M# P
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 - i, u& y- s/ w! _! \
Ping statistics for 192.168.1.21: 2 O+ y Q0 W3 u) r3 d
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t % o7 _4 E# [6 X& Y. T
imes in , F1 v2 t( l" z1 i0 m
milli-seconds:
# d# Z/ ?: a/ d- ~! f0 oMinimum = 0ms, Maximum = 0ms, Average = 0ms # z; f" V, t* f5 s$ Z
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 4 k Y# |( C. V: ^9 y. A, V2 l x9 X
-n count Number of echo requests to send. % ?: C$ h) Y$ N3 y
发送count指定的Echo数据包数。 ( c0 L7 o# b# R/ V o, } r
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 4 ~# G- w- x E {6 S
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 2 v' R; c9 k9 R7 \
时间为多少,最慢时间为多少就可以通过以下获知: 0 z! k8 ?1 J5 J/ H; m
C:\>ping -n 50 202.103.96.68
! _1 H, \7 K. ]$ qPinging 202.103.96.68 with 32 bytes of data: ' N& U4 U' t7 i- M5 r2 e5 I0 t
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
8 S9 [/ C( t! kReply from 202.103.96.68: bytes=32 time=50ms TTL=241
g0 x3 P4 a# q9 rReply from 202.103.96.68: bytes=32 time=50ms TTL=241
- }( ~. r# N$ I- P. Q, b% eRequest timed out.
4 a1 P; b$ a, |5 m8 U7 `, y1 O………………
. w+ R- U+ S. K' X: d! ^! H& |Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 3 r b' Z( f/ F$ S! f. k
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 @5 z) q" B, t$ T; C
Ping statistics for 202.103.96.68: 3 r* [( U& F6 H
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
: |( }0 r* j$ Z7 Htimes in
) z5 g; L( G* [+ G0 Umilli-seconds: $ R: K5 {9 a1 L$ R' h. G2 G
Minimum = 40ms, Maximum = 51ms, Average = 46ms
* T, S& o' D. y/ y% r从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 % {7 V j% ^. L* {# K" s8 K# D
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
5 w4 Z7 P( G' T4 n速度为46ms。
& u+ G4 E- |* Q# C2 @4 u1 P-l size Send buffer size.
6 ^% j% `. a7 p3 @( S3 ^定义echo数据包大小。
) g9 H& R( _7 k" G在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
: }( i: Z3 n8 X- a* A小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 ) s' n% Y; b& [ @2 |
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
( D) @4 v9 D& _9 M6 u/ b对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 4 ?6 q L0 v! d) S& Y$ h* @
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
* z3 ^" V/ ^& a9 ^8 w' Q2 I+ F8 p9 J参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个
& R O' Z' {: M9 d& T带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
6 C% a; x2 g1 A( m' x+ u: S否则后果自负)
5 y( |+ \/ A; Q2 t. |C:\>ping -l 65500 -t 192.168.1.21 : M! h% O5 B& A2 n9 { k; S& S7 v
Pinging 192.168.1.21 with 65500 bytes of data: ! W. t" @5 _& I+ H
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 + T4 N$ ] n1 k* v7 Z9 M+ h J1 I
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ! A5 |3 W2 ?$ i2 ^$ N1 A! I
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, % S0 m @- V8 F Y
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全
* N5 q; ?+ O! d4 p5 U9 z' F# j瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
7 W' `9 x5 q/ i. _9 N* w! E统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
* j8 d/ `& v% ?. z, L" r完全停止,由此可见威力非同小可。 . l# x7 L3 @! K7 ^5 {
-f Set Don't Fragment flag in packet.
% t" U4 j3 M$ c% D q" j在数据包中发送“不要分段”标志。
C9 N0 l N" Y% f+ ^$ {在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
C. v2 y' H6 k0 \4 ]# N; S再分段处理。 - q$ c s v+ u. v% I: A
-i TTL Time To Live.
6 o" i3 f, J: u" w指定TTL值在对方的系统里停留的时间。
$ @, o. }! C- T% n2 M此参数同样是帮助你检查网络运转情况的。 3 e7 m6 G9 p; e2 X$ ?) B7 F
-v TOS Type Of Service. 4 O$ ~- b4 q$ ]. D
将“服务类型”字段设置为 tos 指定的值。
. Q' b+ D. s2 q$ R-r count Record route for count hops. 0 L: T* |( @+ F; l
在“记录路由”字段中记录传出和返回数据包的路由。
! c9 U4 M: ~ U1 x在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 5 H2 k& @0 A& D& S
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
- b8 o {8 \1 b5 {2 K Z' ^你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中
# y2 n7 t1 Q4 ^) s4 }4 w, m给大家讲解。以下为示例:
7 ]" e1 K5 E; q6 F6 C1 {& x! nC:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) ! k5 |% ~& O+ N. k' ?
Pinging 202.96.105.101 with 32 bytes of data: 9 R. j% O! J! U& @) k% A; u* e5 K% j# z
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
$ p* u3 k9 y# N! lRoute: 202.107.208.187 ->
x; x" P2 `* |202.107.210.214 ->
9 N: o6 B, \& G. X' ~+ b61.153.112.70 ->
8 a6 F6 F' W/ G+ u+ ~7 O3 Z61.153.112.89 ->
. X% B ~' L* B202.96.105.149 -> " B7 d6 P- _* ]$ W: `+ z D) H
202.96.105.97 -> / ` h7 J( [, K* f6 l* h2 E
202.96.105.101 -> % x2 T( {4 M: c5 Y
202.96.105.150 -> * I. N# U6 F! K
61.153.112.90
9 B$ ~& n! _6 m$ c) w+ XPing statistics for 202.96.105.101: 2 ?) D' F! o' W6 F8 k( t+ ]$ O
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
9 j Q9 q- t0 E7 j$ k9 o6 ?; M2 d$ @Approximate round trip times in milli-seconds: + f( }. L# r% K1 k! k9 u
Minimum = 10ms, Maximum = 10ms, Average = 10ms 4 c z; x, b+ G* Y+ B; c% V' @
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 - u3 l1 E: G5 X- L( |; ~$ f
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
2 G" k) ?+ c3 Y1 k97这几个路由。
$ g2 ~2 d+ B k" V2 s* A; }-s count Timestamp for count hops.
* v9 p2 Q- b5 i0 w W指定 count 指定的跃点数的时间戳。 7 G( O" z0 Q' f: {- k
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 L: i! p8 S/ W$ Q' P8 L/ m
-j host-list Loose source route along host-list. ( j8 g8 l5 z7 ]! l
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔( . x$ }/ q& v( I0 O8 U# w
路由稀疏源)IP 允许的最大数量为 9。
$ |9 n* V2 C3 a( r1 g-k host-list Strict source route along host-list.
1 x6 k8 q) v9 c% l利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(
- e' z$ ~) b9 V+ w1 j" b( R ^; u# S路由严格源)IP 允许的最大数量为 9。 - ~9 a/ v' D4 Z8 f% F R2 a
-w timeout Timeout in milliseconds to wait for each reply.
. D8 Y( k* \/ K* x, {# E指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。
+ P( Y$ [2 d5 L% ^3 s; u a* `+ U; tping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小, & n1 E# u0 W0 f1 i# V) b1 _
粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
9 q: K& N: @: u5 ]0 Gws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240
8 [' {4 o+ o/ I! Y3 N-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 ! I _: [+ ^' V+ [
改注册表以下键值实现:
, d1 V# J6 S4 D9 D0 T6 {1 w' E[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] ( `3 ~; q2 F! V5 C, P) j5 k
" k9 B1 Y; u# g- j% y9 h' o
"DefaultTTL"=dword:000000ff 7 m3 K2 q) A( y& k9 z
255---FF
( m4 y( B- t; z- z# p: T3 D 128---80
6 M: q" I: o0 m8 S" ^5 n 64----40
$ r; U$ V5 C- E& L2 o4 t0 \7 j; g- K( p- E/ R3 a4 b& ?
9 I$ q. d* e) m: w' V/ j3 w+ \/ _6 j. S
|
|