- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
: s4 x9 i: Q" S& I, P8 j
# v3 b2 K$ t" f( Z1 j. k# U$ j 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:. L) y/ M2 \) a% I% D: Z5 `2 @
+ N/ z$ m5 {. O% n$ w& R, ~
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
( j( C; d6 M! t% Z; Z3 g1 j$ j, N
3 R. F- W1 [# c9 z' W/ } Options: 0 u( Y! z+ y: g- x2 g: C
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. 9 v) e, ]7 o% d; \2 `& M8 B/ y
不停的ping地方主机,直到你按下Control-C。 3 q( u. |0 `8 q# {" \
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
, L; q2 w% J' J0 F0 w# _ -a Resolve addresses to hostnames. , _% S4 s) R1 `8 V9 r6 u2 O! O5 i& P
6 U1 `7 i1 N F: O! h/ a
解析计算机NetBios名。 ) [" I2 Z* L/ v+ w
* ]2 z0 z( h: U$ M1 R! u
示例:3 d" c! Q3 I/ W% o8 K9 ~3 f) p) S
: f1 F. I- X1 v" P% S1 ]4 y. A C:\>ping -a 192.168.1.21
; ]% Q( H1 C8 Q' \4 ^: k Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 4 ^6 V2 q C! j$ ^0 U3 _$ H
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
; }$ ^0 W6 N% k4 H( a0 x8 B6 h Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 0 A% j+ J' N) S7 G5 o5 ]% I: ?9 j
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ) d P& ?" N- P/ \ y% l' c
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 , E& |# N3 Q' L$ |! n( w+ o; o
Ping statistics for 192.168.1.21:
" G' N( Q1 N3 m; O: m. t Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
, d' ^, }/ k) h/ e! \ Minimum = 0ms, Maximum = 0ms, Average = 0ms
& Z4 S" ~0 U: z- `! z 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
$ y6 t6 ?: `$ z3 L/ L$ s" w7 N, {; k2 i' {# Z5 `
-n count Number of echo requests to send.
0 b# Y2 H* h- v+ B, Y+ o 发送count指定的Echo数据包数。
$ u* e# w0 M( L9 f+ Q- i, i% x# ]* P X+ e5 M5 }' i( B H
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
3 H; p- I/ b2 k# [- I" L9 x' W; ^: x' R* ]2 }) y
C:\>ping -n 50 202.103.96.68
/ z1 M, I L7 v: W6 o5 v2 R: x% x Pinging 202.103.96.68 with 32 bytes of data: U& @% @: f* e
1 `7 L4 j O: N& A3 r Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / o' d* y, f F/ E- x
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
# e6 R) U4 m `* K; k Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
. @( t2 i; [5 b Request timed out.
4 G) V1 n" v' t ……………… `: _! v- U: |: `0 T
2 D* ^0 ?1 p; S3 `6 ~* U" }1 a G
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ' u. e- N% `' @4 i2 T- ^
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 - B8 ~3 D4 O1 q' \5 n- g
Ping statistics for 202.103.96.68: ' ^$ @- o2 C' U! D4 a: t
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
1 T7 I# Y: i8 D& d5 e0 ?ound trip times in milli-seconds:
0 ]; f3 P" V, I" r# M& [ Minimum = 40ms, Maximum = 51ms, Average = 46ms
. E, Z' V: M9 I! b, `5 ?7 c( i1 |( U# Y* e1 n4 ^5 Z
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
4 B0 b& i+ a# O$ F0 J6 H4 t- y -l size Send buffer size. 定义echo数据包大小。
4 W# I- L% a7 f. B
- x, t( T; u) h* ] 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)" M- s; \( l3 b' H
$ E; y) u( G, `' Q C:\>ping -l 65500 -t 192.168.1.21 5 ~' v0 E! e5 f0 m
Pinging 192.168.1.21 with 65500 bytes of data:
+ j. `/ [! q0 m& ^& j7 q Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
$ H- q3 w$ Y7 m" @0 a+ ?) @ Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 $ f) T# B- R/ X
………………8 o/ h \+ |1 a
% o& _% E% q" Y! r6 Z
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 . D/ C. f1 G) e7 v" i- R
. H, h( Z1 t( l# v7 M. C* u6 \
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
2 d- M. a/ W6 s5 t* A 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 " K3 e/ r0 S7 v `# X
-i TTL Time To Live. k2 {7 [& o3 `6 i- B
指定TTL值在对方的系统里停留的时间。 ' t. M: W$ l9 r/ u$ g
此参数同样是帮助你检查网络运转情况的。
% k2 V7 z1 }3 S* F) ?" R -v TOS Type Of Service.
) m5 } b8 R; _6 O5 K 将“服务类型”字段设置为 tos 指定的值。 9 ^' x) ?2 ]" a
-r count Record route for count hops. / M k5 K. |3 a7 p1 ?
在“记录路由”字段中记录传出和返回数据包的路由。
# i- }& T4 R, H; R5 l; D+ _( Z/ s; t5 E0 v$ X. k$ Y$ R; _) K
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: v; h% Y3 ]* k$ Y1 R% S3 I
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) 9 r4 Z m% e9 O( H* F3 |
# G5 [% D5 s5 Q+ [* `* m5 x Pinging 202.96.105.101 with 32 bytes of data:
( o- C+ x0 _4 U9 D0 y1 b, M Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 % e* N' q9 f$ W( z- o& _! L
Route: 202.107.208.187 -> . ^$ A( W7 c. N
202.107.210.214 -> ; X' n8 V+ F0 G0 p8 ^8 P5 G' T
61.153.112.70 ->
. w; ~; T3 z( |& _% m 61.153.112.89 ->
/ k0 G* q2 d* ^# v5 C& t 202.96.105.149 -> 2 j+ E+ O- ?9 }5 V8 f
202.96.105.97 ->
3 v, C8 m5 R6 l, \ 202.96.105.101 -> / H$ q% @4 m3 f% a; y
202.96.105.150 ->
; a/ s4 H: l- i5 q+ L 61.153.112.90
* i8 j8 F; E- f5 \0 e- F% W4 f) j) G u$ ]( [- ^
Ping statistics for 202.96.105.101:
2 G% T# F" K+ |, l5 A7 n2 n Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), + F/ N. \8 j7 z, n$ E
Approximate round trip times in milli-seconds:
* j! h: c/ R+ j s8 ~1 B" d* K Minimum = 10ms, Maximum = 10ms, Average = 10ms ; [% m% m+ o! B. o
" q0 d) m& B6 H4 v2 O% T
从上面我就可以知道从我的计算机到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这几个路由。
; @9 p# l5 _8 P5 }8 h9 H. m
2 o) V5 C# I) @& u4 \" L4 e7 M -s count Timestamp for count hops. # j$ J) R6 U4 n# i; o2 T9 |
指定 count 指定的跃点数的时间戳。
3 |" ?, x$ F0 l2 r( m0 X6 l 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
; ?* v$ H$ U4 m9 {& B! l& v3 Y -j host-list Loose source route along host-list.
4 x$ b( [0 T3 r8 [, f! N# L |利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
: z6 ^. d4 m f. R, Y" I, l( o* o
1 ?) O b0 |/ _+ i: K -k host-list Strict source route along host-list.
( L( C2 K' p0 h- l* E利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 # t! ]( e q8 T& N
-w timeout Timeout in milliseconds to wait for each reply.
' ]/ K# K7 @: a2 G: V ?9 P 指定超时间隔,单位为毫秒。 ; [. g' S& q/ m* ~
此参数没有什么其他技巧。 9 ^% n8 ]# K ?2 F* M. w9 v: x
5 ~) ~$ k* ^( o% s7 Y% J: B6 N
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
$ {% i1 P4 _) z [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
6 k: k- w- q6 y "DefaultTTL"=dword:000000ff . ?0 g+ b" S0 H$ M
255---FF
5 m8 ~0 O' b- b' l" I. i) F 128---80 * v! s$ o; G+ Y3 l! c- W) e% [. B
64----40 4 ]/ ?. b- k3 D( F9 O0 p
32----20 |
|