TA的每日心情 | 奋斗 前天 10:07 |
---|
签到天数: 2385 天 [LV.Master]伴坛终老
|
ping命令使用技巧
1 U& h& u, _. p( b [! J$ _-------------------------------------------------------------------------------- ; v1 N( A' E/ V/ e# l; G5 m
对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 6 |1 h; |, N( j$ G/ D& N/ |, y5 W4 Z
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用 . L7 M$ n2 I( k" `$ C3 b
ping这个工具,也总结了一些小经验,现在和大家分享一下。
& k' [, m& i" b, @7 O现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有 + e; \, v8 A" q
在安装了TCP/IP协议以后才可以使用: ' v% c6 |0 @* Y: [, z) w7 ]& f
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
" G- p& Y0 v6 ?' ^+ f" qcount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
8 G: w" S- k' J! ^2 mst
% I" w; q) j# T2 R) L5 B+ ~Options:
- E* e( e& H, A* }% c-t Ping the specified host until stopped.To see statistics and continue - ty
' h5 S# q- a, @) L+ A; h; Fpe Control-Break;To stop - type Control-C. " S# O: L! y( A- F% P3 K c2 a
不停的ping地方主机,直到你按下Control-C。 9 U0 |. t3 K+ f( y+ z
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 L* N, B( v# }
-a Resolve addresses to hostnames. ; ~- v- w1 s; l
解析计算机NetBios名。 9 ^2 a# t$ `9 D# ?# [4 u. ]
示例:C:\>ping -a 192.168.1.21
5 E+ v3 p* {8 d: |$ `) }Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
/ I# x3 n# _# \ kReply from 192.168.1.21: bytes=32 time<10ms TTL=254
" b% l. N& Y8 X4 I$ _Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
0 S) L; N6 U9 s. x S. ?5 A- y& ~Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
p0 P2 ^. _/ {9 K& e1 D) s4 UReply from 192.168.1.21: bytes=32 time<10ms TTL=254
, e* k) I* `) P7 a) ?Ping statistics for 192.168.1.21:
3 O+ [. E* X6 {Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t
4 r& G3 {! V: ]1 @imes in
( B: c1 W) ?/ Lmilli-seconds:
; U5 v0 `3 Y* F# _. z0 g4 vMinimum = 0ms, Maximum = 0ms, Average = 0ms
2 X5 A6 U4 `5 w7 C, @7 i. W从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ' U3 ?* x+ S# o5 C/ M c" c! z
-n count Number of echo requests to send. ' |4 u n" n$ ^5 [4 ~; V% F
发送count指定的Echo数据包数。 # ~, U7 E0 S7 s. E" T
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对
& s0 y0 z: t% A3 A, n5 u衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快
3 c% t- e: G* J& L; h时间为多少,最慢时间为多少就可以通过以下获知: # \- e7 W |+ \0 o3 i# E$ ^
C:\>ping -n 50 202.103.96.68
; l6 @$ Z t" Q, _: [Pinging 202.103.96.68 with 32 bytes of data:
* k2 M9 r) f5 ?; n4 o$ V. K$ DReply from 202.103.96.68: bytes=32 time=50ms TTL=241
& {4 T: l, r2 d8 k6 d! z- Y! OReply from 202.103.96.68: bytes=32 time=50ms TTL=241
- B4 i0 j. x, q t! [/ _Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
5 Q! L% f2 j& iRequest timed out. 3 ]7 L/ V8 x! A
……………… _5 }: \) p. }
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 ]9 W8 M9 d) n+ L
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
" Z- j p8 K2 q5 r7 gPing statistics for 202.103.96.68: 1 @# `, D( I3 f+ ^
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
' j* A, ^0 g: b7 ^9 Atimes in
( `" T8 U. F0 p+ |7 K3 _4 Emilli-seconds: 2 P5 q# c* n% T4 A" R N
Minimum = 40ms, Maximum = 51ms, Average = 46ms
' {) D Y0 v' U$ n$ b N从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 / K0 W& J/ e* `. y
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
k# Y; H8 v: D1 V4 y' f/ C速度为46ms。 2 y+ M F- ]% N2 t* |- A
-l size Send buffer size.
S" F, ]0 q5 z定义echo数据包大小。 5 `6 X' i5 i% L$ N) o; R3 \3 t! c
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大 0 y; M5 A) i* }" m) H5 b
小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 0 o2 `* t! b0 q* m2 v
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向 ! \+ S) N! U3 A9 V0 H& Y* D4 e
对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 $ U: F9 c, V' Q& u6 j
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
) t9 `% ?$ ]; @8 u5 r" ~* y, f$ Z! J参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 1 D" F$ Y6 R1 r8 N& G
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
$ m N/ J% c: P" |% q否则后果自负)
8 l7 J4 z1 \. R5 }, J, [' a& ?C:\>ping -l 65500 -t 192.168.1.21 2 Y7 X- B: Q' f
Pinging 192.168.1.21 with 65500 bytes of data:
2 X5 m2 v% P# A! D2 u; qReply from 192.168.1.21: bytes=65500 time<10ms TTL=254
2 J* x4 |7 `4 V7 i* SReply from 192.168.1.21: bytes=65500 time<10ms TTL=254 : \' W* S; A8 J0 e
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, K% @; ~$ E- V4 }) G, f% y
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 3 \) o! \! ?- p W( E1 z5 q1 B" m
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
4 q3 c1 N& {7 y) { j0 W3 J统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务 4 x9 F) Z) h. y% L, ^6 }/ T$ B
完全停止,由此可见威力非同小可。
" p; N0 K+ `6 m7 c-f Set Don't Fragment flag in packet.
, {' F$ a; I" p% r& x g在数据包中发送“不要分段”标志。 * s- I5 f) s7 d2 h, E* C' r8 s) o
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会 + }6 X! K4 G5 o4 s9 x) L. t
再分段处理。 4 A) }, L @0 V" B: W6 @
-i TTL Time To Live.
; U" r7 K8 V ]) R2 K指定TTL值在对方的系统里停留的时间。 0 Q. r5 {% h( w* u7 U! J' V
此参数同样是帮助你检查网络运转情况的。
/ _* ?/ r) H7 `% Y& F' W6 `-v TOS Type Of Service.
7 p j3 e+ Q }! U& L5 W, _; x将“服务类型”字段设置为 tos 指定的值。
1 {3 V- v* n- S; ]$ n-r count Record route for count hops. ! H7 }6 f& K; D4 N& R$ t+ f
在“记录路由”字段中记录传出和返回数据包的路由。
4 J# w" G# o3 R$ L2 b% M. N) W在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路
* I+ B0 d) S. U o# d" j由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说 ' ]7 Y' t8 D7 {9 b# w0 B% y
你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中
: s3 O) ]0 _: q1 Z2 E% Q. |- }0 r给大家讲解。以下为示例:
& Z2 {4 b* k. _8 ^C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) " d5 \+ F, |$ H- c4 Z- t0 M/ i7 Z
Pinging 202.96.105.101 with 32 bytes of data:
: R! V. W) M6 oReply from 202.96.105.101: bytes=32 time=10ms TTL=249
4 t2 n& o* ~7 ERoute: 202.107.208.187 -> 6 R4 P! w9 v. j' m' k1 `
202.107.210.214 ->
" U0 n& W6 |& G! J; c61.153.112.70 -> % P& ]+ j* S1 d, h1 C' m. Q# h6 _
61.153.112.89 -> 9 ~6 B/ m E* a" k( P. g8 s
202.96.105.149 ->
/ y+ Z/ Y3 M K. x( H1 h$ P" y202.96.105.97 ->
8 g0 y) s- V/ e202.96.105.101 ->
* y; v. @! u% O+ c; a202.96.105.150 ->
0 r' [/ `. K! |6 i" f# g9 t61.153.112.90
# U3 M+ o: \1 m9 I' \Ping statistics for 202.96.105.101:
2 E# g: N) u, }! U6 DPackets: Sent = 1, Received = 1, Lost = 0 (0% loss), 4 |" i' Y9 w, F# y l. S
Approximate round trip times in milli-seconds:
! H0 l. f( \6 [/ @' V' n' \. NMinimum = 10ms, Maximum = 10ms, Average = 10ms : p( R* a8 Z# M3 Z3 g# |
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20
- @ `$ E8 B* T( l0 K3 D5 ]- u2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
- G$ m/ N* ^7 r. O/ b: R0 c: G97这几个路由。
+ s/ q+ a) F" v4 T' y-s count Timestamp for count hops.
2 c/ g: H3 c/ `. J3 z8 P4 B指定 count 指定的跃点数的时间戳。 ! O( X& } a: n; C
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 4 b* Y# z% e# d8 W o8 M1 T5 c
-j host-list Loose source route along host-list.
# P) e* N( h1 U& a8 t; q U利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
# F5 N! R* f/ V8 g3 F3 V* v; y4 D* e路由稀疏源)IP 允许的最大数量为 9。
7 j# r+ ?; b8 F-k host-list Strict source route along host-list.
9 d9 c( y; q& H' Q- n利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(
6 H! E4 c& u5 o( F& K" G8 |路由严格源)IP 允许的最大数量为 9。
: z1 e* `" T: `' `2 `3 t' r-w timeout Timeout in milliseconds to wait for each reply. : Y6 J- g+ H$ J/ j$ `
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。
) N: N! |4 A b. C# K: ]2 `4 ?ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
6 x9 h+ g6 o0 [; D. u粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
/ Y/ C& M5 {4 ]0 N2 o( V8 Vws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 U; ?9 H) ^* f9 G ^/ q; q
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 Z5 D0 U. i/ L5 ^
改注册表以下键值实现:
9 f$ P* k) C1 y" @[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
$ j% S$ e1 w/ e
1 t9 x( d8 |" ^"DefaultTTL"=dword:000000ff & E0 E9 Z6 F7 I) O0 p- k1 p. U
255---FF
) @7 d4 U; S" \5 U 128---80
4 k2 S; _4 D; V: Q4 b 64----40
; r; `2 r* X/ `: Y4 s( Z# O* ^2 b7 x# G- `4 b
5 [6 M B7 r( W: w: f
' F9 s$ n2 u: d6 x" F( e( E, W |
|