- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
; W2 Z& ]! Z8 s& s& N# n- l: O" V. T
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
; U1 o) [) Y" l5 A4 ^+ T; i, N4 {
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] │ [-k computer-list] [-w timeout] destination-list: Z+ K, `- t, s: L7 ]3 d1 _
+ f- {- k) O3 |4 A" j/ L Options: 0 F( D$ f8 I7 i
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
! z) V- z/ q& q# l, `* {6 d 不停的ping地方主机,直到你按下Control-C。
; ]- \ A" \* T V2 F$ C1 W' ? 此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 7 y0 j, ]2 Q/ t& P; N9 ~
-a Resolve addresses to hostnames.
+ {% j- y0 m' A! _0 d
3 t4 f9 ~ J V0 U% b+ `) B 解析计算机NetBios名。
# Z( c W! G$ G! G" e9 A) l3 _( s2 e2 S. Y' u/ J
示例:
+ @' J2 @& M2 ?# z( F/ Z$ h
' C: {5 h; |/ Z/ @% x C:\>ping -a 192.168.1.21
% q! ]3 ^/ ? V Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
/ }4 a: f }, ]2 e* d# b m Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 i: k+ b7 L0 t( ^0 m Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 1 |1 _$ S: [/ S- c3 R9 o
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
\# A& d% D8 e Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 + y8 Z" v# ]. x6 u L( |
Ping statistics for 192.168.1.21:
o0 I7 @1 X2 e/ b. ` Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: ( n+ u5 J* P1 w2 O+ B6 F
Minimum = 0ms, Maximum = 0ms, Average = 0ms 6 E8 }/ A2 U- T N2 p9 h
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ' Q, }/ T- u" d1 B! ~6 y
* ^+ [' v# b+ I: t) Q! q; y3 ^ -n count Number of echo requests to send.
" X( H0 J9 u ?- j$ V; w. X e 发送count指定的Echo数据包数。
& i& n% R" M1 W
) D( O. Q2 ?1 h 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
/ R/ m8 S0 g8 O% \& `" d& w" y+ i4 X( Z* W3 L% O% e5 z
C:\>ping -n 50 202.103.96.68 " i6 ~& _8 l( B+ J9 W7 S/ R0 p
Pinging 202.103.96.68 with 32 bytes of data:
- g' Q* H+ ?) Q( G x
" n' g" E+ i) j$ M0 D3 ^" _ Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
: C" s. p) s( x' H Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 7 o, b' A! g' D* S0 v% r2 G/ _9 l
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 q; A) S8 @+ L9 d; i$ ]
Request timed out.
5 m. i8 U7 K% V8 \, g. u ………………
|! I; i. X4 n. Y! f# K% ^9 n8 I# b$ S9 z
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 2 a2 E' I! u! ]: m$ L3 c% c
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
5 p* W0 |8 t E. m& t Ping statistics for 202.103.96.68: 9 j3 D5 S5 U) Q, E, V& o
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate ) L8 ^% l, I! m
ound trip times in milli-seconds:
& C* I! P/ G7 G& D0 b; U Minimum = 40ms, Maximum = 51ms, Average = 46ms
: s V- \ y6 l. ~+ y i9 I( M3 \' u" ?3 a- e4 ?& M
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 $ A, k; S* f) l! C$ r1 B
-l size Send buffer size. 定义echo数据包大小。
3 a2 q9 @5 I" q, m7 c7 L0 j7 }7 Y, f0 Q* T3 P
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
0 \0 I7 R) x- A' r7 ]+ O# M9 A& x3 e0 p+ u0 E7 ~
C:\>ping -l 65500 -t 192.168.1.21 6 X2 p- K% C* {% O* e l9 z& d
Pinging 192.168.1.21 with 65500 bytes of data: $ u* o+ @( _& y9 N
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
( G3 t& ?, {2 G# t+ a4 s Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 + Y# m6 Y/ D" z! ]! W( u
………………
* z, ]( t$ T. U: K3 x8 E, b/ V+ k
% t+ l9 `7 `" c( E9 J 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
0 |) M2 f3 m: o( J. W% F
0 `6 s$ |/ H j5 ?& ?1 q -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 8 ^2 x) W. o; p, m' `6 c( g
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
7 i5 m2 x8 u2 T% Z0 M -i TTL Time To Live.
. x u# F2 o, J) \2 Y+ y 指定TTL值在对方的系统里停留的时间。
- S# b3 \3 S9 B; ~& A 此参数同样是帮助你检查网络运转情况的。
' Q& K! N! y- e -v TOS Type Of Service.
5 A% y" D( M$ l7 e7 M: n9 j/ X 将“服务类型”字段设置为 tos 指定的值。
0 R/ Y1 Q2 E6 {/ N9 O -r count Record route for count hops. - e+ `( W) k+ u3 H
在“记录路由”字段中记录传出和返回数据包的路由。
# ?, j4 f8 Y, `/ P0 g- E0 ]
3 S% G$ T8 K. j. C 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: 2 S3 ~6 R! ]' d
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
6 \2 b. @ G' O# o: ~
, x# j8 F2 M0 N Pinging 202.96.105.101 with 32 bytes of data: 0 D, d6 {& i0 v4 @9 F* D
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 * P; K9 B2 L& M+ h7 k
Route: 202.107.208.187 -> . a, j# x* o$ F6 m) [8 _
202.107.210.214 -> x6 @/ B! L. t8 ]% V2 y
61.153.112.70 -> 5 c6 C9 l( O3 T+ @6 K. j
61.153.112.89 ->
1 J9 a* s5 M# Z7 v, P3 e( q0 [ 202.96.105.149 -> ; F, N! N9 T8 \3 Q: b8 P" l; q
202.96.105.97 -> * W$ U7 {' x' o( D% P" Q
202.96.105.101 ->
5 A2 Y8 M8 V! Y; H' L 202.96.105.150 ->
$ o% e$ O" B; Q 61.153.112.90 I6 `; X9 r: P
2 r3 {9 y% V/ y; P4 `5 I% s ?& f Ping statistics for 202.96.105.101: ( z/ M5 ?$ S c' Z( w4 b
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), ) S1 \6 q6 f, `
Approximate round trip times in milli-seconds: 8 C& Q2 S1 C! N! I6 L
Minimum = 10ms, Maximum = 10ms, Average = 10ms
" y& v& C* m2 B5 R' x+ H- V R4 `4 E
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。
, X( ~0 D) O7 b3 Q% q8 |: J* I: D7 m7 m- d
-s count Timestamp for count hops. ' x5 E* Q& A7 X; s# _+ T
指定 count 指定的跃点数的时间戳。
# q0 L% i* L/ s0 ^ 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
6 b$ C* L7 O. X -j host-list Loose source route along host-list. , T9 a# ^6 b8 S0 Z9 f3 z$ l
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
7 m/ ^3 E" s: y1 L# T; [+ b D% X- j. @& N/ f/ t& j* |+ |1 @6 U
-k host-list Strict source route along host-list. , f# @# v0 ~+ |! g; j9 r! g& v/ N
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
5 Y: b, K9 f! u) R2 D% C7 s -w timeout Timeout in milliseconds to wait for each reply.
0 Z7 m) i' B# Y" W1 P- e3 i 指定超时间隔,单位为毫秒。 , i7 r3 p# K- e
此参数没有什么其他技巧。 9 `. [9 {" w4 g+ c. B
1 [0 _! j7 B6 I* b5 B
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:7 |& I* q- s& |0 b! _% @ P
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] " D7 g0 @' L P( H( O' R
"DefaultTTL"=dword:000000ff
7 f4 I- ^" |+ l$ ^, N: L9 _2 t" ?2 H5 G# c 255---FF - Y+ M. p m. g
128---80
4 V' R( e* e- w2 ` Q 64----40 5 q, _3 G* p* e
32----20 |
|