- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 1 F+ G8 k. E- q$ `3 u
, @) `5 N+ A! s' F( U 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
" Q- F9 e$ h$ }) p9 L
! k2 b8 U4 l5 K 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
: V0 p8 x- t8 {, ^% J
% u$ l7 e2 U. Y, b Options:
( _# y- j/ Q B% L9 g* [ -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
. k' ~9 F8 J7 O% Z! t/ r 不停的ping地方主机,直到你按下Control-C。 ' s2 q; A6 {' w: L1 Z6 l. }
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
& A3 ?# j2 P8 r -a Resolve addresses to hostnames. ' I0 G0 L0 Q9 N$ m' \$ D# q) ~
& ^6 F& ]8 P* q3 O% R% ] 解析计算机NetBios名。
' Y6 ? d. F E
& _6 ^: B: W! v) f5 p- } 示例:& }, [8 z! p/ l( O" r
- x( R* Z! s) o& h- E
C:\>ping -a 192.168.1.21$ c0 n7 N: Z. P. x
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
7 q( p- U9 Q: Y Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 2 C( Q3 ` N5 F, f3 q: Z
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
$ p. P: @: _) O- x Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 4 E, ?" J' x8 i" e+ U
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 0 Z z; J+ i4 }: G" @
Ping statistics for 192.168.1.21: ( n! Y3 y% r: Z3 u
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
, v9 s5 a/ O. O" p. R Minimum = 0ms, Maximum = 0ms, Average = 0ms 2 [: v6 R2 u W% c6 v5 x7 _
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
/ ?' _7 ~! W4 q; L# Q+ W9 @* J" q/ W) S. z5 X/ s
-n count Number of echo requests to send. 1 ^( @4 b. f/ c0 m+ ]
发送count指定的Echo数据包数。 n+ h! U4 N/ b* ~ ?. X
, o9 q# D$ z; I! m2 q 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
- n$ @2 R {9 N6 ^" n# L
2 e0 H$ h$ Z3 Z3 G( @7 M6 [0 h C:\>ping -n 50 202.103.96.68
! J" Z9 u4 w& g) B: R: @) J7 f* u3 h Pinging 202.103.96.68 with 32 bytes of data:
" f: @' {3 w) b r
" L' K, z3 H; l/ e Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
8 k7 b9 [0 C! g+ M }+ S N! ~' [ Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
! V! K) S3 {/ y) C Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / q4 W; g1 R: ~- E
Request timed out. 5 i+ R# P1 m2 G$ Z+ @
………………
i$ O# g9 p3 g- A
3 W8 |) |& H* }" J- V2 z1 V( w9 } Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 9 d& C3 r" \# g! b' d( x
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 * y3 ?4 M" N* H* S/ r! ^" w
Ping statistics for 202.103.96.68: & R/ ~1 [$ a% O# Q. h, u m" `1 H! f0 l
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
% T0 M/ Z2 {4 A% x) F+ }ound trip times in milli-seconds:
0 d% i& v' G6 q. c* l4 i/ N Minimum = 40ms, Maximum = 51ms, Average = 46ms / Z6 k0 L9 h8 l6 t+ Q9 t
: z5 ]' ?) J' A. V2 |( U 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 # _/ o/ z; w. T- ~' F8 E9 X+ z
-l size Send buffer size. 定义echo数据包大小。 6 D6 I9 s7 V: C9 J/ J
0 o. S0 D* L% O 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)' q Y& f0 @& a
% t( U5 c0 u9 G
C:\>ping -l 65500 -t 192.168.1.21 5 A/ X5 s6 U7 Z' G, q5 ` I% o
Pinging 192.168.1.21 with 65500 bytes of data: 3 j; }0 x1 }1 G4 M; n" J5 E/ X3 Q
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
/ _) f. b* J- K. ~% L5 i Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
$ l; u, f" T1 c1 r- E ………………. o- L' |) q, d! m3 t: ^
3 F! B) F, o+ p# N& r1 T9 K3 E
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 - i; X) s3 e; Z# _. p" l! w& s* `
J) z' n( \1 W. U. v' Y+ \- b -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
; d& L& E: n) }4 K+ O 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
- _; y5 a: k; D5 G/ B, ` -i TTL Time To Live. 7 R8 g; H* g/ j" M9 q, q
指定TTL值在对方的系统里停留的时间。 2 \$ p1 A4 g! o
此参数同样是帮助你检查网络运转情况的。
* |1 N' @& _- {' F' u. e -v TOS Type Of Service.
* y* `" P/ J0 U: p; I 将“服务类型”字段设置为 tos 指定的值。 5 U, i) g# B7 e# D- k6 @! g2 I# |
-r count Record route for count hops. 5 X( h1 L4 z/ u" N; u0 ?' n+ _
在“记录路由”字段中记录传出和返回数据包的路由。 + @9 k/ q7 S* G8 K S# p/ R+ F; R
; ^+ j$ d; Y2 _
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: ) w) I, D. K4 d3 ?. j$ P
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) & V' a/ K+ T) O3 Y' N( V2 Y
5 H( ?) J& Q: [% I Pinging 202.96.105.101 with 32 bytes of data: " H4 H4 ~ T' w1 O# o
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
6 @5 M7 G# M; L7 I7 G& F# p" K Route: 202.107.208.187 ->
$ {; ^+ z+ C7 R/ \$ y: j9 T0 s 202.107.210.214 ->
- A L" G. `: U9 a: X& r9 X' @ 61.153.112.70 -> % j" C" Q! e; k$ ~8 e
61.153.112.89 ->
* i% F, u ~9 I+ ^+ S6 v( ] 202.96.105.149 ->
2 E0 W, P3 o* R! \% a) K% O 202.96.105.97 -> 6 ^+ }) n: m& ~! G$ l# J
202.96.105.101 -> 7 Y8 U3 v9 j$ d. x* W& y
202.96.105.150 -> 4 i8 F) m z# m* h1 C3 c6 e$ M
61.153.112.90 ! n# x o: J+ P' v( `/ l: H
7 `# e7 W) f' l' p Ping statistics for 202.96.105.101:
( d4 G' c5 `- P2 o Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
s) ?$ m" R* i4 W; W7 O! m4 @( ^0 j Approximate round trip times in milli-seconds:
P2 [- S) ^, @( m Minimum = 10ms, Maximum = 10ms, Average = 10ms " G1 k5 N8 F/ T( }' {' E& H/ `0 }5 H: N
. W+ }, E2 _% H' z
从上面我就可以知道从我的计算机到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这几个路由。 " w7 W$ u% y! ^, B* [2 `5 y. j
& h6 O. l) i* {- f -s count Timestamp for count hops.
2 r% \1 o5 @! S6 ? 指定 count 指定的跃点数的时间戳。 - @2 f6 \, Z" V, y. Z. C
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 # G( V: N1 S. h" H; l
-j host-list Loose source route along host-list.
9 v) V/ O$ ]8 G q0 m利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
0 G" S7 a! n& H7 r9 T4 m0 }( F0 B, u# j& P
-k host-list Strict source route along host-list.
% j$ l; p1 G; Z- z利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
' l- d0 m" \! V) D2 N7 f -w timeout Timeout in milliseconds to wait for each reply.
4 ^/ Y) O6 e- Z: v7 I; { 指定超时间隔,单位为毫秒。
9 Q: u% [6 W: v8 U 此参数没有什么其他技巧。 ) H' E+ D0 X, p4 | B/ z: I
* ~4 u1 ~1 |2 {0 ]8 F$ O. a
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:% P$ l2 }; ?# T1 S! O' o7 `
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
0 }$ m+ Y9 Y4 }3 i "DefaultTTL"=dword:000000ff
& E* j# |5 i! j2 X ^, M A4 Y- J9 a 255---FF % [8 ]& Q- d6 P
128---80
1 i6 n. k! a: D+ j* ? 64----40
" X/ o+ x) B" q6 f' V, G. Y0 r 32----20 |
|