TA的每日心情 | 奋斗 前天 10:07 |
---|
签到天数: 2385 天 [LV.Master]伴坛终老
|
ping命令使用技巧
* ~/ N. \) L8 v. V [. P) r--------------------------------------------------------------------------------
" R7 m' o( h4 Z b2 k" O' n对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的
: ~ q8 f4 L0 y- |& e! O! w: K4 ~/ F人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
& x# R; G- j* i' B$ P( k7 t$ rping这个工具,也总结了一些小经验,现在和大家分享一下。
- q5 L% F/ j; L4 M2 j现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
. ]8 [) ~# [+ }5 M! J在安装了TCP/IP协议以后才可以使用:
X6 F% P) d4 t, `4 E! I8 |ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
% G. r; x# \5 @5 ycount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li ( |: w- j7 r ^! E$ F
st
7 @) t( _) A3 E, X/ sOptions: / L9 C/ g/ r# u, I
-t Ping the specified host until stopped.To see statistics and continue - ty 0 f- u) }, u6 {" _
pe Control-Break;To stop - type Control-C. 9 L J: S1 V' l: q# H* i% O- t, E
不停的ping地方主机,直到你按下Control-C。
! c- Y1 z& e- w+ n l0 t/ J2 r此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 ( w' J* D* Z8 b3 A5 N$ E
-a Resolve addresses to hostnames.
6 ?* ~7 C @0 R) j9 C7 |* D! m解析计算机NetBios名。 - G4 v W( i1 [) n b7 P
示例:C:\>ping -a 192.168.1.21 ) x4 z+ {9 G+ p2 Z1 @! E A
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: , t) B2 q3 D. T6 ~/ _4 G
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
" m4 _# @1 v4 }Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
/ |$ @1 z% U7 s& CReply from 192.168.1.21: bytes=32 time<10ms TTL=254 % _6 X! u/ j ~+ [' ], T2 o( c! D& B
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 2 T5 \$ I/ T( q4 C, G# N( _3 x! O# I
Ping statistics for 192.168.1.21: ' ]6 S6 N1 O' F" o0 n# w% S
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t ! A. F, b2 f- P$ B
imes in
5 y6 l! }1 M+ p# Pmilli-seconds:
: j6 F9 f6 u1 \/ i4 q# ~, qMinimum = 0ms, Maximum = 0ms, Average = 0ms
) g" W1 `' `$ Y从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 6 F) p. E8 y" V' C' D
-n count Number of echo requests to send.
5 x- _, k9 ~) T0 R发送count指定的Echo数据包数。
2 L, I; e, d4 l A在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 * y) y( \- I4 E! @" b/ Y
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快
0 x4 A* H+ |+ b& k时间为多少,最慢时间为多少就可以通过以下获知: 4 Y6 J1 _4 f9 y5 F. v
C:\>ping -n 50 202.103.96.68
7 Z& ~6 \* [5 i: U/ K0 B' qPinging 202.103.96.68 with 32 bytes of data:
" f2 t7 _) S7 p0 QReply from 202.103.96.68: bytes=32 time=50ms TTL=241 # n4 o. b8 I" z6 R* b6 G+ B
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
) I! C9 I( E9 A) [8 i. w; I% {* wReply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 T% z) m6 N" d1 z/ q% b( ?
Request timed out. 1 j& H5 h7 S* C8 H: b' ?
………………
* p- u" x. M4 z: hReply from 202.103.96.68: bytes=32 time=50ms TTL=241 + y/ C" m6 w) f2 B9 r% O7 s6 m
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Y& q6 f* t' ]7 \Ping statistics for 202.103.96.68: 4 q% b! U. }3 ?' l" @" V- R" [( {
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
5 M/ t! q |8 H0 t( y/ Q6 H2 Dtimes in
) q2 P% k9 z7 l+ gmilli-seconds: . H& A( Y2 S! u9 }/ t, S
Minimum = 40ms, Maximum = 51ms, Average = 46ms ( A' U) R* X- j6 x
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 : Z, S7 x! [: N8 M5 h5 X+ U
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
9 d) Y5 S0 f7 a3 o; P速度为46ms。
1 q; Y. M; |8 p' T% P( I9 ^-l size Send buffer size.
) f5 [4 J# m1 p定义echo数据包大小。 * o$ q `) d; `* d! Y
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大 ; D- ]+ a2 L% j2 T) V4 M
小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 8 Q' q8 u# Z, f7 C
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
! Z+ m4 ?* w1 U" N2 S2 w, J对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解
6 c" X! Q3 A9 n/ Z! S) x决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
& `9 }8 N( G3 A* J参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个
. `8 Q3 @& `. g7 Z带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
0 u' a0 Z# H. B) R9 i否则后果自负) 2 Q3 {* R" D6 Y) \" c. Y2 k0 ?( B
C:\>ping -l 65500 -t 192.168.1.21 2 [, Y, n" |: f6 N2 Q
Pinging 192.168.1.21 with 65500 bytes of data:
4 c" M; _9 Q! o4 L' zReply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ; I. j3 }1 P+ E' e
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
' s" t! F: m5 r……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, $ M0 f4 r m6 J1 A$ q
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 , j% d) m) @2 N9 T, |; m6 X5 m
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
- z; E. b. M8 G H8 v统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
6 ]; j; q" T' r& e. X$ v. G完全停止,由此可见威力非同小可。
; B: P4 E# |8 X& o" ? A-f Set Don't Fragment flag in packet. / N; a* O: ]& G" t; j
在数据包中发送“不要分段”标志。
: N- S8 y1 d; j2 R7 o7 H9 g5 @( T2 W在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
, G) C9 s$ n2 U# A( N: M再分段处理。 $ N1 A0 G1 o5 h
-i TTL Time To Live. * t# N! u K& A6 a( y% W. n
指定TTL值在对方的系统里停留的时间。 3 B% w, T. K2 D' M/ O
此参数同样是帮助你检查网络运转情况的。 - ^) \+ L& M1 s% Q/ P d9 X
-v TOS Type Of Service.
8 N8 C. {% ^, O4 h2 |0 }, _. R将“服务类型”字段设置为 tos 指定的值。 ) z9 Z2 b! x/ r7 b/ a
-r count Record route for count hops.
1 n; z5 q$ ^+ c在“记录路由”字段中记录传出和返回数据包的路由。
% ?. G1 Y6 |3 u; D2 y/ L+ e& i$ A1 k在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路
3 f$ G( ~, U6 @ U4 R5 w# z1 h由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
" }5 A' { g9 q# S9 {你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 ' b! L. \, s& b; {# ^
给大家讲解。以下为示例: 2 L4 b# Z8 G2 I1 {5 h3 i
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
7 H! h% Q. h: i ]Pinging 202.96.105.101 with 32 bytes of data: 7 N( \; J% ]- ?9 T5 ~; V
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
* b1 D) P+ s/ \4 L5 ^# I! a: q1 \Route: 202.107.208.187 -> 9 q3 f3 c2 i/ D; i
202.107.210.214 -> 8 I- A- V! U5 G6 h
61.153.112.70 -> / D4 N" q3 X5 p3 ?+ }$ i
61.153.112.89 -> 2 [. t* O. ^- {7 A9 U" c" z# z) O
202.96.105.149 -> / F* D! j" T, U. G- l7 `, }
202.96.105.97 ->
. `! c2 F5 h6 T202.96.105.101 -> " C3 V6 @* l$ ^) ^" ~
202.96.105.150 -> 3 ^' z- A0 d" t/ `2 P% b
61.153.112.90
5 D; p, Z2 W! C3 {) _/ [% Q( TPing statistics for 202.96.105.101: 0 c0 [9 n4 N5 B: D# S. y2 t
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
0 N! c! j4 J' z4 g1 r, V5 w. TApproximate round trip times in milli-seconds:
0 K; A% |% Z6 \( I: V- P" b. FMinimum = 10ms, Maximum = 10ms, Average = 10ms
! ]- b% \) \, i$ y3 e: a8 {从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 . A) X# q* c9 u' J: R6 j/ L" c
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105. 2 H1 G: n/ W. N- `. I9 {
97这几个路由。
: { T* m& h+ ~8 V-s count Timestamp for count hops. + N6 p1 z. t4 ]5 K7 U
指定 count 指定的跃点数的时间戳。 ; n" N, L& O6 j& \6 L
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
" d5 y# e+ m; w1 k-j host-list Loose source route along host-list. 1 p: O& ?& W& l" g U
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔( - e& p& u% i/ S# L% _4 p+ Z
路由稀疏源)IP 允许的最大数量为 9。 H6 a0 h1 n5 Y" {2 ?- U& {( T
-k host-list Strict source route along host-list. 7 F9 ~4 a2 Z% s& \' y
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(
- o; b) o& i8 x路由严格源)IP 允许的最大数量为 9。 ' S, _. J8 B% ~) g
-w timeout Timeout in milliseconds to wait for each reply. # @( [2 k# J7 j( e- V/ M9 w" [
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。
# R9 Y4 s* a7 T3 z$ K# ^2 @# p3 Zping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
7 S9 Z! m, @3 R6 B: m/ V# ]$ M3 M粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo 5 d; N1 _3 z7 ^1 O
ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240
9 Q1 X5 F- L2 H8 L$ W2 a1 |7 G-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 ! P( j+ M/ C, C7 l4 w. h: e
改注册表以下键值实现: / ]: c0 b# ?6 ~7 [9 m
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 8 d' B) F9 A( S7 [& b( y
% b& u: b: d% O k$ S; @4 \"DefaultTTL"=dword:000000ff
, I( g8 B: i9 V" q7 C' Z+ o& l, ]255---FF
# @& P( {, V* D$ X5 A6 J0 E( L" Z 128---80
' t3 T. Z; m+ v: c4 w 64----40 9 d( f# w; t) \. o. ~" V2 g
7 }6 _1 e9 n5 ]; d) K. b
& v- X% m3 D6 `, i9 S4 t# M
5 b3 Y9 Z+ M9 h8 D6 }9 W5 \
|
|