TA的每日心情 | 擦汗 昨天 10:28 |
---|
签到天数: 2269 天 [LV.Master]伴坛终老
|
ping命令使用技巧
5 r9 {7 j, d, p/ m" \' d$ w-------------------------------------------------------------------------------- + p2 U' x" x: N- E
对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 # \4 L! u' @) o0 A1 d7 ]
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
+ \4 n9 n& V* t9 @ping这个工具,也总结了一些小经验,现在和大家分享一下。 ) Z9 G! r- Z: p4 S: e
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
, F$ F% f0 U- X3 A在安装了TCP/IP协议以后才可以使用: 1 t3 i8 Z. d3 d; W
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
. b" @ l0 v$ b! Zcount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
' {! ?& z$ P/ W% `9 Xst
1 K8 x, d) H; R6 H6 }1 DOptions: 4 m: H. l M0 H# \) h* ]" r4 f
-t Ping the specified host until stopped.To see statistics and continue - ty + m5 g$ A" w) |
pe Control-Break;To stop - type Control-C. 8 T0 w( L+ p% W9 S% Y+ S2 ~# o
不停的ping地方主机,直到你按下Control-C。
" n8 @. O- S) M/ g2 W此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 " f9 x4 f8 r/ ^7 @. _2 R
-a Resolve addresses to hostnames. 5 l, o1 l5 W) e6 f1 }
解析计算机NetBios名。 ) S* o, T3 ]1 L+ `4 l! s( q
示例:C:\>ping -a 192.168.1.21
0 R' I) q& d0 lPinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ) P. V9 `1 g: j% R# w
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
- P. c0 j7 s8 D. J4 U& A$ u8 [+ v0 KReply from 192.168.1.21: bytes=32 time<10ms TTL=254 ; X& W) g/ _5 Y% y7 ~, j
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 2 z# G5 A( [2 a3 b9 P; `
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 $ A! @9 K0 y v e6 I7 b) \2 C% @% e
Ping statistics for 192.168.1.21:
* ^6 J1 l% r) [/ D6 J; K+ HPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t ! O0 S/ I+ T5 [% O% s0 D7 E$ y( G
imes in
- S- G% O) P; |$ A! L& I- }1 Omilli-seconds: & Y" u3 ~' ]+ C: N' s/ V" d1 T5 Z
Minimum = 0ms, Maximum = 0ms, Average = 0ms
; ^" Q5 L1 r( j从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 - P/ f! A8 B$ L; K) R
-n count Number of echo requests to send. 1 v9 E# q, W0 \& S* a5 x
发送count指定的Echo数据包数。 / b8 V3 S' j& t
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对
" f& S, c6 a7 [衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 , V& }7 W9 j7 U0 B0 _
时间为多少,最慢时间为多少就可以通过以下获知: # W# f% f" e: q6 C }5 B6 `) S% g
C:\>ping -n 50 202.103.96.68
% I. k! I" [, q* gPinging 202.103.96.68 with 32 bytes of data:
" t+ D, b0 [' b w) oReply from 202.103.96.68: bytes=32 time=50ms TTL=241
5 u3 ]" ^; d J1 n; e) x( _1 RReply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 F) w% `% _# J. ^9 d
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 " O+ |0 B% ?1 @, G/ C& P* D
Request timed out. 0 n; O6 f/ f3 v0 M0 s
……………… : D0 _0 \$ t6 M1 y8 I5 r
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 5 v* C: m8 o, K, |; n
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
; h8 z. G# w6 a0 d( T8 ?Ping statistics for 202.103.96.68: 7 R* Y! M, b3 U& S5 N$ P
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
" V8 E* ?' D* h. r& c: Rtimes in
& ^+ J+ k; H- r. M1 v6 umilli-seconds:
' a" Y8 m* F: r, bMinimum = 40ms, Maximum = 51ms, Average = 46ms , Z1 u0 ]4 i9 F" v/ a+ [8 W
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 : H6 c3 S9 g) c
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
4 y+ X. L1 N/ p e; s! A7 F0 M速度为46ms。 A$ b( E+ S7 l9 K5 Z- n* k7 T
-l size Send buffer size. , p/ `/ | l9 u( W# j9 U
定义echo数据包大小。
7 K+ Y2 P y) T7 V8 m" }' R在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
0 f) c. o2 E4 j- n小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到
- l4 _9 K) x" r65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
0 t" }! w9 ^9 g: [7 X0 ~3 J对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解
; d' b6 U' f" Z% y8 S7 x0 J" H决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
1 K9 k2 k' c: n* l: e' h参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 " A* F2 c- G; s- R
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
& _4 o1 {; L$ [1 i否则后果自负) ) z/ O& K, o/ O) g$ ~% M" W* ~
C:\>ping -l 65500 -t 192.168.1.21 ) R2 h9 \ W+ H& g! P# ]
Pinging 192.168.1.21 with 65500 bytes of data:
' @* t# b/ S0 p _: y) JReply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ! t2 \$ U }+ b2 G7 G! f
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 4 I& v1 {: t- \- E1 v' _/ T7 }
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, ' L+ x( j$ ]7 T$ }% h6 c# ~
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全
7 O7 U2 z) ?$ X瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
8 z/ F! x6 ^3 Z- n统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
' d% x- i T1 m; m: ?完全停止,由此可见威力非同小可。 1 H4 e d) |7 I7 `
-f Set Don't Fragment flag in packet.
3 M0 J4 u7 v4 |$ y在数据包中发送“不要分段”标志。
% a; n9 W6 ?1 i在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
' D% c7 X) z( w( e% g& H& X% | m再分段处理。
3 f1 |" i$ Z/ j( a6 `-i TTL Time To Live.
1 t9 d; G, h f3 _% N7 z指定TTL值在对方的系统里停留的时间。
2 U8 k! n. t# z$ \3 i# v此参数同样是帮助你检查网络运转情况的。 + ~9 B9 h; H5 B" X( q$ a% O/ A# ]
-v TOS Type Of Service.
4 `- e$ l! G& C) \将“服务类型”字段设置为 tos 指定的值。
7 U0 z% f2 D) O-r count Record route for count hops.
+ d; W/ N9 F6 V在“记录路由”字段中记录传出和返回数据包的路由。
" x% @) G$ S' X8 w( D s* f在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 # v- `# B. W* Y+ Y4 d7 I5 Q6 R& h
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
: } V& g0 e+ L你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 1 `- f# h- p+ ~: q1 t
给大家讲解。以下为示例:
2 t, @& h" R, S1 Q% V7 ~2 J4 HC:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
1 M2 x% U' l! V XPinging 202.96.105.101 with 32 bytes of data: " N' V5 ]! H! d9 x
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 3 ?: |2 C- L8 Q9 |! |1 }0 R
Route: 202.107.208.187 -> a+ K8 G5 ~. K. Q# v7 o
202.107.210.214 ->
& z# o$ j' {% a; [7 D61.153.112.70 ->
+ c1 c# ~3 |+ e2 N% |+ O61.153.112.89 ->
3 t* z' G+ ]' T* z" q6 k; O" R202.96.105.149 -> 1 @5 B& A1 ^4 e3 |9 Y: R2 t
202.96.105.97 -> ! z8 e V' E; g Q, c" W3 T
202.96.105.101 ->
+ f0 I) P$ m1 Q, y5 }4 [7 n5 \202.96.105.150 ->
o9 l; M8 Y& w% C; E! X+ O; _61.153.112.90
/ r" a. n. O* U* D5 KPing statistics for 202.96.105.101: & e! {% s* ]+ M; [, X; L
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), * {$ N U. H! i
Approximate round trip times in milli-seconds: / f# x' u3 }' P1 \4 ]7 d: J8 b2 m
Minimum = 10ms, Maximum = 10ms, Average = 10ms
* {0 [9 D8 N; Y1 A, S从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 3 `7 z5 H3 R" m* \( y8 W
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105. 5 _0 K: H3 t' ^. t3 k# j! a
97这几个路由。 9 c6 o) \/ A1 \( E7 D
-s count Timestamp for count hops. / X' b0 ^/ s# F9 r. |
指定 count 指定的跃点数的时间戳。 8 D, s: l! \% k8 Y
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
+ ?& q D7 P! \3 \-j host-list Loose source route along host-list.
" k' r" T. P4 Z/ P利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
% W6 v* E: j# \1 a8 }! [0 n路由稀疏源)IP 允许的最大数量为 9。 , r4 S8 l6 h( C
-k host-list Strict source route along host-list.
7 v8 K5 @5 c: A# M利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( * K' P1 T" s" M& ?$ K( }' V
路由严格源)IP 允许的最大数量为 9。
# u/ i/ k2 Z8 g9 X+ `* C1 ^-w timeout Timeout in milliseconds to wait for each reply.
+ ^- |- \3 ?! F4 n指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 - R( ~) ~5 F* @
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小, 1 ~6 e9 `& ^, G
粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
+ E- K/ k0 s) n7 {- J( Rws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240
! {2 }- D5 N: F-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 - h+ g0 x) \0 C5 \) S* E
改注册表以下键值实现: $ c5 V T2 f" h% y% A( |# G" z7 [
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 2 x" j6 z& K; F5 U# }
& v2 i1 y( ?$ p0 `* o2 F
"DefaultTTL"=dword:000000ff # C+ q$ y" S d3 T
255---FF ! h5 C5 O o# {4 e" j* w
128---80
& s( ~: I1 K5 W- C' W0 x 64----40 & Q8 S% n) K$ N: r
( V2 t. a9 K5 J2 C/ c
) t3 |7 o8 |- S
6 F n3 n4 [) E$ {/ k |
|