TA的每日心情 | 奋斗 前天 10:07 |
---|
签到天数: 2385 天 [LV.Master]伴坛终老
|
ping命令使用技巧: Q0 i8 b8 u. D( P5 c- l: v
--------------------------------------------------------------------------------
' `7 L |% q3 v( p5 N对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 ! _8 C/ D% c. g4 F0 v, Y& }; w6 U
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
+ ^+ a8 W/ t, F$ _ping这个工具,也总结了一些小经验,现在和大家分享一下。 2 K4 ]" c( J. b' A/ @& g$ C" v
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有 6 }0 u5 e3 }7 f" P. N9 s: v
在安装了TCP/IP协议以后才可以使用:
! p4 e3 N& ?! Zping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
, j* @% {# l8 lcount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
; y; {# s% a5 j5 ]st ' l+ p9 k) U& R6 L, n$ }6 f, [
Options:
, X9 o$ Q, m: m4 g6 O& E: b-t Ping the specified host until stopped.To see statistics and continue - ty # }# o. Q$ T# v: D* l; d
pe Control-Break;To stop - type Control-C.
. {3 n* e( q3 I不停的ping地方主机,直到你按下Control-C。 k+ N; ], Z% ^+ ]* ~: u
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
& J. }1 i5 T& f-a Resolve addresses to hostnames.
& N7 v& s5 H1 ^) u8 Q1 m解析计算机NetBios名。
2 V# h5 |. e# E' J& }) P/ d9 d示例:C:\>ping -a 192.168.1.21
$ V* K0 J$ \$ QPinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ) I n- f& b& _- E, s2 w
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 , J1 g) { g2 B) H& j4 Y" f
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 5 C& y$ X# Z' I8 V
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 / Z& R4 F( P' i5 C1 x& r. W/ ?
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 & u. r; ]: y6 Y* u5 p
Ping statistics for 192.168.1.21: 1 b2 E6 ?# _* X3 l8 }+ Q$ P6 ?
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t " P" Y; f" g9 B0 s8 w2 b& W6 |
imes in / {2 n. q& ]2 J* b! v1 M
milli-seconds:
& i) N: I l5 N* V* E, @8 X* yMinimum = 0ms, Maximum = 0ms, Average = 0ms : F4 ?" ?- ?4 i- e0 Q) O; Y
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
8 X4 q- V$ @! ]9 p" s% l( j$ A-n count Number of echo requests to send.
: j: D) k* l x0 W2 v8 E w发送count指定的Echo数据包数。 s3 f p7 Q" Z0 S
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 ' u1 l! a: i/ Y. F- u( h V
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 8 u \ H& a' D. r4 G% g
时间为多少,最慢时间为多少就可以通过以下获知:
; M5 Z( l9 \! BC:\>ping -n 50 202.103.96.68
6 b" y# p% |" u# LPinging 202.103.96.68 with 32 bytes of data: 8 S& I! |$ T+ G3 q/ P6 z9 X" w
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
]8 ~ G; |' x. V) D6 tReply from 202.103.96.68: bytes=32 time=50ms TTL=241 - J" _9 L& U: k3 Y
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
. Z* G! @- Y* U* _% w1 ?9 RRequest timed out.
9 P% z2 x ^) v) m9 T, _7 ^" ] Q……………… 0 ?. a8 j& G0 f: b! T4 C
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 # l5 l! f! P* p l
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 k8 i0 V/ l) ]. I+ }; O) t
Ping statistics for 202.103.96.68: ( t) i& x7 u5 I; \
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip . Q, _; g- l. A6 {; o+ y C
times in
* M) @0 N3 M" W% D( ]5 ?) O% o+ Vmilli-seconds:
5 ?2 M. l# G/ x, {& gMinimum = 40ms, Maximum = 51ms, Average = 46ms 7 f1 z7 [- F. \' ?5 c. l
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中
+ v6 A+ ? f/ D+ l Z0 I6 ]有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均 + s" F" ]. N( S: r0 _& n9 M3 g
速度为46ms。
9 A& r1 b/ D, G9 }! H6 n& ?-l size Send buffer size. / p, m$ D& [! l/ u4 V
定义echo数据包大小。
6 e) ?5 @6 X4 s x% A8 T在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
- n; r+ \7 P; B$ I: h+ R, V0 G小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 , X# {9 S/ {3 y5 M. ]8 Z7 I* M" w
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向 ! z, e+ d& v+ Z$ I+ R
对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 8 [: F, Y; S/ o( n% W! f
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
' J0 ^/ U: a. B+ x" a; K- q, C参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个
. I: N, X: Y) A4 l! Y4 k带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
! O7 y$ y8 m' ]% T2 o5 s4 ~否则后果自负) ; Q. J& s# y1 L( K
C:\>ping -l 65500 -t 192.168.1.21
6 {$ Z2 O& x/ [+ r pPinging 192.168.1.21 with 65500 bytes of data:
+ L' ~$ B; Q1 t: p# L& p% wReply from 192.168.1.21: bytes=65500 time<10ms TTL=254 3 z$ j7 Q; f1 A/ v; G8 p9 v
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
, v$ ~; ^5 _5 ^7 Z! u……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,
' v7 v ]2 K, y* |' i R" q如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全
( A9 K4 t8 D& u8 l1 a$ U7 V瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系 ; H5 d/ C( V& h! i% g- J8 e
统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务 / K& ?7 ^4 f* b. {: D' e; _
完全停止,由此可见威力非同小可。
8 @- r( k) i! C9 N-f Set Don't Fragment flag in packet.
* v0 _* X: f0 M. _' ^2 o+ n# {在数据包中发送“不要分段”标志。 c/ C# _% c' d( C. y; k/ d
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会 x- v: N1 L) T* n
再分段处理。
b4 V3 S7 W' E% ~. q- @/ l9 n-i TTL Time To Live.
" N5 i( y# y% ^4 m指定TTL值在对方的系统里停留的时间。 - h; P# n7 s" _# q6 x% D: u
此参数同样是帮助你检查网络运转情况的。
, k* G8 M1 o/ v* ]; A-v TOS Type Of Service. 6 x. W6 u' W& W# V
将“服务类型”字段设置为 tos 指定的值。
}# \. M( I! q, L4 ~' j0 N) A( U-r count Record route for count hops.
" p- t8 i v$ Q1 i j在“记录路由”字段中记录传出和返回数据包的路由。
- I1 V% ]" y/ z+ K在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路
1 |" O( y' X: B% Y4 u% `6 m由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
2 O8 G/ o8 N' ^ i j你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 . S/ [/ _% A; ?4 e" p
给大家讲解。以下为示例: : A# y( N5 y+ ?) Q* T
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
8 `: m' Q( L2 b. dPinging 202.96.105.101 with 32 bytes of data:
% P3 o( l6 T1 B7 l2 b5 }Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
7 l" C# g/ F/ N* `8 V8 fRoute: 202.107.208.187 -> # |, F: Z' U2 i% n( X
202.107.210.214 -> * _ C: a0 f2 S! j8 F" J% E& d
61.153.112.70 -> ) G( c' X5 ]1 L+ d% w0 |" [. ]. p
61.153.112.89 -> # o0 P! Z% p! y+ ]6 ^. L! s( n
202.96.105.149 ->
n/ F7 H$ c) q) V& {. e" w# |202.96.105.97 -> ! ^. q, A* x# R- _' @
202.96.105.101 ->
% Z3 ?, f% F$ y) J202.96.105.150 -> # X: Y5 R: w5 ]0 O
61.153.112.90 ; r& Y# J9 G2 B* ~
Ping statistics for 202.96.105.101: 3 |2 A6 D$ u- E1 S v
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
: _' o! n9 A) O: a7 M. n1 T/ \3 \Approximate round trip times in milli-seconds: 9 I1 t% Y! m% u. p' j" s
Minimum = 10ms, Maximum = 10ms, Average = 10ms
" v+ G1 R2 S: \" _% i* g/ l7 U" }从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20
/ q8 F' H C" |2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
& f+ K4 C# c! u/ W( v97这几个路由。 ( `2 v/ Z1 o' O+ P/ N: A
-s count Timestamp for count hops.
7 }8 v9 X7 M p3 x8 X指定 count 指定的跃点数的时间戳。
# v/ f. U% X8 B' |7 j, V. t此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
; P' ^- R/ K9 e& b% w$ E-j host-list Loose source route along host-list. 0 @# P5 T. S1 V+ x
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
5 U7 l. w8 i& R) F3 ]: z路由稀疏源)IP 允许的最大数量为 9。
: s4 T" Y8 _# t-k host-list Strict source route along host-list. 9 n% [- j: e! a% C, d
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(
}: p* i3 L$ \6 {) F+ T路由严格源)IP 允许的最大数量为 9。 6 X6 V: q$ j/ i5 z8 S
-w timeout Timeout in milliseconds to wait for each reply. , P4 y" M6 p# ~/ V- }
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。
7 \ c) P6 K6 p% n" f5 K0 Oping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
- Y" H1 F$ O; h% T: B* _粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo 2 P0 P+ k( q' C1 L$ p9 ?9 T
ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240
4 \# l4 q% ~& N/ T6 D+ }-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 * _, ?* D: @, e4 Q- x( g. N* j( e
改注册表以下键值实现: $ K( v) ~; E2 R* d
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
( C* r. x6 T) ?2 F: U2 }4 {7 @; {9 }* V" z
"DefaultTTL"=dword:000000ff / U* j2 i5 w) X- P* p) p! z
255---FF / u4 u8 m8 F: Z$ b" c9 {
128---80 ; ~- x W$ c9 D5 y( I
64----40 " o& v( r8 y- S% ?
/ N) S/ R+ A% U& L# F
" R. Y$ D* x% f+ w8 l, P
8 r# Z C X& E0 C |
|