TA的每日心情 | 擦汗 前天 09:05 |
---|
签到天数: 2402 天 [LV.Master]伴坛终老
|
ping命令使用技巧: I3 ?) U* m- }1 W0 e- o
-------------------------------------------------------------------------------- * O5 z( f4 ~. M; P) I
对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 / t( {& m( x! j0 r8 M0 A' a& @
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
4 k, v+ K# ?7 T8 H9 zping这个工具,也总结了一些小经验,现在和大家分享一下。
) Q; ?* s( s6 F现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
! m: E7 u4 @" f在安装了TCP/IP协议以后才可以使用: - I; [" L. k8 u# K5 K' Y
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
9 ~# R6 c8 O7 `3 @6 s0 |( icount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
( s1 i, K! A- w0 B# f2 Bst
2 D; b/ a8 l( m+ B/ FOptions:
% ?. ~$ _$ R$ K/ o: |1 c) `, j-t Ping the specified host until stopped.To see statistics and continue - ty
: A4 f, C F# Y# y1 x8 w2 {2 _pe Control-Break;To stop - type Control-C. $ ^( D8 @2 M5 a' ]; L6 x
不停的ping地方主机,直到你按下Control-C。
0 Q; p O Q5 ?0 h8 k5 J5 y* k此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
3 @; }, l. J+ M- M' v. X. N-a Resolve addresses to hostnames.
6 a3 w( i! \( S) g, n解析计算机NetBios名。
, Y; O: f2 u$ D示例:C:\>ping -a 192.168.1.21
- O1 E2 I* u2 C, F! Z; RPinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: * v" I3 R) S/ F* \
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 % p- i$ ^& x1 g: F$ P) J) b% x
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
+ V# ^. I4 B4 s2 t& O JReply from 192.168.1.21: bytes=32 time<10ms TTL=254 " d& s% S6 B( \5 t
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
2 e) T, ~1 F3 O' ~& F& Q$ e; PPing statistics for 192.168.1.21:
6 P: L# T. P: ePackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t
; y2 b9 H: q" O' Z7 i9 z; aimes in # R: X4 `/ o( |, k
milli-seconds:
8 N8 e5 l m8 T2 |0 jMinimum = 0ms, Maximum = 0ms, Average = 0ms
% F! [, y! D6 _3 E从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
9 Y: Q( L; f0 H, R- {-n count Number of echo requests to send.
- R8 L" Y" D G7 E4 J& B发送count指定的Echo数据包数。 3 q& L$ T7 ~4 r
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 5 S) a9 w5 G5 U) P! Q0 J% k
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 + r8 x- b' w4 [; d7 g
时间为多少,最慢时间为多少就可以通过以下获知: 5 i5 e4 a* f8 S( P
C:\>ping -n 50 202.103.96.68 9 w, T& Z; p' ^* T
Pinging 202.103.96.68 with 32 bytes of data: 6 W4 C* c& E3 V" C: O" ^$ z
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 " F. X' i0 z( C$ O$ p9 w8 k
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
& J) \! ]9 U: u, [/ UReply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 C: H C& B7 y G8 o4 w. y
Request timed out.
4 m7 K+ z5 Z/ s8 Z………………
1 _$ E; R( u- ]0 L+ z3 g, F, PReply from 202.103.96.68: bytes=32 time=50ms TTL=241 # p J j2 D8 g5 k5 f7 f
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ( `. {& A# P& i: _7 P- L k" e
Ping statistics for 202.103.96.68:
7 @2 m' K0 {+ l c4 @/ L( ?5 GPackets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip # \# C7 O# d* j K: E! ^9 l
times in
$ a% z( C& \2 k" r2 I' K" J5 smilli-seconds:
* w" X: R) i8 UMinimum = 40ms, Maximum = 51ms, Average = 46ms
- J1 b! U( h R从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中
0 |. m0 K4 T$ L+ o6 C% @" I有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均 5 q6 [& T' P' M3 k3 A+ `, D% n
速度为46ms。
- [% N' s& o% G7 Y- T( o1 O6 q-l size Send buffer size.
/ p o( k8 I3 t' [( [, F定义echo数据包大小。
- q8 p- ?( }0 T7 ^4 n0 ^2 c在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大 * {$ ]) E& _, z3 F) q7 p& w
小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到
1 p) W% _7 _3 T9 _. r3 B) w9 D8 e, t65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向 9 v; k1 _; b# K- |
对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 o* h# ?6 P0 h% H+ h2 V1 u
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个 8 b3 @) ^: O: L2 F, T5 ]& P6 G3 {
参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 8 P7 E: i% Z: x+ W, S1 H1 L( D
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上, b6 u" e7 _& b; l1 c
否则后果自负) & r3 W5 T8 m7 g- s2 U
C:\>ping -l 65500 -t 192.168.1.21 " h9 } |' t& L5 k9 l. E
Pinging 192.168.1.21 with 65500 bytes of data: G0 e8 I! _ B& L7 }4 v ^
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 " h4 l* v6 t! G
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
% m# q' o* g& G: i1 I……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, $ o6 @5 d# d* x# f% Z$ L
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全
0 X4 Y, p9 j U% {# {5 L+ r瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系 * t( ?# I, [) \; `1 r
统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
& E4 ?* L* k. V0 H) G! z/ J完全停止,由此可见威力非同小可。
5 _& m! a: k- a2 m-f Set Don't Fragment flag in packet. 6 j9 q* x7 E9 n+ [
在数据包中发送“不要分段”标志。
- V5 Z3 A- w3 `8 K0 k在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会 # W2 i7 ?) K$ O# W8 X4 T
再分段处理。 % t+ j0 `2 p7 ?8 |; b
-i TTL Time To Live.
2 i5 J* {/ L% p9 t, Z$ L! r) b7 j* F指定TTL值在对方的系统里停留的时间。 0 E3 s( P: N' G; H
此参数同样是帮助你检查网络运转情况的。 ' M4 t! R3 f' ~. X5 f3 a4 Y
-v TOS Type Of Service. 6 n% c& m, d1 F3 U# r# S/ B7 I" w
将“服务类型”字段设置为 tos 指定的值。
$ x( a9 F( d8 T+ J) |-r count Record route for count hops.
, h; c" a" F4 J% _在“记录路由”字段中记录传出和返回数据包的路由。 2 [0 _% L2 F2 W5 J- \' Y" G9 u6 U( U& J& m
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路
8 w) k7 m9 V M由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
1 L! {+ J/ M4 e* N/ B% m* }你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 6 X( ] J* z3 w
给大家讲解。以下为示例:
" p: I8 k- g9 I5 }, ?5 b% rC:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
8 _# B6 ?% C9 t: OPinging 202.96.105.101 with 32 bytes of data:
3 z; f$ {8 g! B$ L% mReply from 202.96.105.101: bytes=32 time=10ms TTL=249 % l. }7 x2 G( M6 O0 d
Route: 202.107.208.187 ->
; H R8 \* A7 R1 |, s( k202.107.210.214 -> 3 T% q- ~( Z; w. N
61.153.112.70 ->
, R: v3 N3 N/ v9 e9 ~61.153.112.89 -> 8 i1 i+ [- S. |
202.96.105.149 ->
: C9 ^# q& ^" l2 S# b' m202.96.105.97 -> % U6 p* j0 X, d% w( A
202.96.105.101 ->
1 h; C0 j0 X; \202.96.105.150 -> 9 l6 Z, r/ Q2 y
61.153.112.90
: ~* i: T# m+ P5 Q/ X4 uPing statistics for 202.96.105.101: * U9 [7 E$ E% l9 S) f/ F9 F) l/ g
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
1 B3 Y$ H5 @% d5 r# g% ~4 Z0 A8 bApproximate round trip times in milli-seconds: 5 L; [, C1 @% v& i% Z
Minimum = 10ms, Maximum = 10ms, Average = 10ms 9 l* P p( ?4 f1 s/ r2 w
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 8 e3 \" L5 T9 {8 K! y: ]1 x
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
4 Z! V* L+ j2 |" A97这几个路由。 0 ^* s- t, P) N" G9 y
-s count Timestamp for count hops. D% q; e: v: e+ r1 o* n% A
指定 count 指定的跃点数的时间戳。 ( ?3 Q1 ~, r$ \5 H( U
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 3 ^8 c1 N# s9 _5 y
-j host-list Loose source route along host-list. 8 _. B. T1 h) a: X9 ]7 I# G
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
, p3 s1 T1 W/ S, V2 a; l路由稀疏源)IP 允许的最大数量为 9。
; F; j6 F+ Q- W4 l-k host-list Strict source route along host-list. 4 c; m; c& i3 G( ^" l
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(
8 C( _3 w. h" r# c3 p路由严格源)IP 允许的最大数量为 9。 4 j; k4 o) \4 V/ G1 B8 b
-w timeout Timeout in milliseconds to wait for each reply. 4 f: Y" x+ K4 E7 i7 ~+ o
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 " r! a, J9 |. g( u4 `( w) [$ D
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
0 \* R3 N% B; F( O1 f8 d粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo 3 x' W1 H$ d7 t2 k5 x
ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 ) [- F; F+ ]$ @1 O( }: L
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 : ~( Z7 J4 P( |( V# u" l0 q' b+ \
改注册表以下键值实现:
% _1 `1 z% i; j+ V[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 6 b6 V- Q& [ Z7 g: W+ b/ ^5 l
. N8 O6 F8 K* f' c"DefaultTTL"=dword:000000ff S9 P) h) {9 R- W) a; v6 R
255---FF : j2 x) t' |1 T# Z) P
128---80 7 O' X* K- }) [" G$ a' |
64----40 - z' r% y$ @- V, t) z* _+ a8 p
3 ^8 N1 ?9 F% t, ?+ e1 J; r2 ]( Z' {2 j* b2 T. n/ O/ \$ x
/ t$ Z6 e, i$ r( n% Q' i |
|