- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
) W, I; a% G% e: n2 V! _! ?" I1 n! ~# j8 Y/ x6 m: G7 p
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用: p; g: b* b! m% |
- r7 t, V- L' ~8 g9 I/ c. c 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
! e3 a* J* U" w5 R' O% H+ `) T+ V/ ^- @' \" C/ N4 S
Options: 0 q9 {! B6 O% N% y% m& j1 ]' b! s
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
$ F# f; l1 T+ c5 S 不停的ping地方主机,直到你按下Control-C。
7 k/ e( N9 z3 [ 此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
B6 T7 C8 i) T1 e1 A5 p -a Resolve addresses to hostnames. & }: }' g- Y8 |7 ^
|" N0 {1 I6 j5 \ 解析计算机NetBios名。 9 y3 ^1 \5 i' k( }5 C) S. ~
, I5 L5 e) a `; b E 示例:
% y ~' ]! R1 k9 m2 P4 O7 e% x" [- _- q4 r- N
C:\>ping -a 192.168.1.218 d& ~4 z8 g _; J6 ~2 s: c# E
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
1 R9 z& k3 s6 p. Z/ q& D Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 E! ?' {, G3 C& L0 F( ] Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 8 l. A! U& w* F7 S6 D
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
- r; Y) c% J$ C# [7 O* \* s& ?, L2 O Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
# I7 t: _/ o! M Ping statistics for 192.168.1.21:
6 ~2 }% \+ q1 ]" P. O Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
1 [$ r# Q& a3 {4 A( }; ] Minimum = 0ms, Maximum = 0ms, Average = 0ms 6 K( U6 \! M- h
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 0 o8 Z1 n/ O% P/ w: V* c9 l' X/ J
; }4 m. x4 b- g
-n count Number of echo requests to send. @+ z5 r& E6 u8 T+ F( h
发送count指定的Echo数据包数。 ' ~% d, a% K I& b9 t: |. i
P/ y$ i' y$ j# K: F0 c 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:2 \; a7 ^: t5 X6 ^3 J# [
- [5 [& Q9 c3 J5 f C:\>ping -n 50 202.103.96.68
: k) k: v" H& D3 Z Pinging 202.103.96.68 with 32 bytes of data:
! B2 q; |) n8 O4 i* h. i( J" n+ H3 s) r. _; N8 V; Y# R, k4 l+ n
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
& w3 K5 j, j! x" n. n" s Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 y1 b( ]- U$ `
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
% Y/ P2 U9 b1 r" O( i& u* d Request timed out.
6 N! d$ h+ ] @8 V% Z9 ^$ ]. u, \ ………………
2 \- e% n' R( u8 d$ k
9 g; z5 n# I8 } Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
5 D w& f2 J, R# C" m5 Y0 B. M6 m Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 % D* w: ]( y& X1 c" \& i/ T
Ping statistics for 202.103.96.68: % R7 B$ w9 N. X3 Z" g% z
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
2 X6 r X, {, f7 w/ xound trip times in milli-seconds: ( i; ]5 i) m% d1 m0 B) i
Minimum = 40ms, Maximum = 51ms, Average = 46ms % j3 j5 }6 i, B8 D
4 ?/ r, H/ E1 V0 C+ d
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 7 I2 ]# \2 L: {- R$ Q/ t* D
-l size Send buffer size. 定义echo数据包大小。 / u: l' l. |# z8 G
. ^$ O3 ~9 E9 m
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)& o3 n+ z3 h! @- Q
) r. b- v! ]3 w2 l! m2 [0 {, E
C:\>ping -l 65500 -t 192.168.1.21
! E( d- A7 h1 u- Z6 t Pinging 192.168.1.21 with 65500 bytes of data: 1 o( l6 a+ ^ g3 U8 Z8 t
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 + X/ G9 H' e/ N) i
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 / w3 R# u8 o6 m- T, X5 U
………………; D5 r3 ?0 h/ G! b& R
: n) S0 @0 q9 _: F- P6 T8 v 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 ; o) l; P/ n7 e3 L- ?) }9 g7 G
1 u, S9 ?; O! w, ?
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
W# m$ s: ]' w, k( q 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
6 k* k' D) E7 x% x) a7 ?! M8 Q -i TTL Time To Live.
# M7 d) l6 `0 y$ K 指定TTL值在对方的系统里停留的时间。 ) B$ O) c( `# T6 U
此参数同样是帮助你检查网络运转情况的。
0 C3 ]2 I' x9 f7 C -v TOS Type Of Service.
4 m% a' M/ J* A% [ 将“服务类型”字段设置为 tos 指定的值。 8 f% S# Y- Y) i' S# Z, O
-r count Record route for count hops. 4 W. b/ V/ m. Z: v N8 G
在“记录路由”字段中记录传出和返回数据包的路由。
6 {3 x5 Y, {( W b/ h3 r2 x( Y8 V. } K( C( n
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
5 @1 ^ ~! J1 a% A# o- n9 g1 } C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) _9 H$ Y( u- }+ R, B& Z2 f
/ M/ t \' `2 c& u9 f. G
Pinging 202.96.105.101 with 32 bytes of data:
# e" B: P; p/ j: k; C6 u+ _ Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 ) Y) b0 _2 p. q0 j
Route: 202.107.208.187 ->
3 T% u! }' U x1 X 202.107.210.214 ->
: W3 q& c; M! f/ I% W8 i9 u. Q$ p 61.153.112.70 -> 9 v2 ~! y$ I* i' T* a) M4 R$ o# L1 {
61.153.112.89 ->
" G" B2 p( _: a9 J* o 202.96.105.149 -> % d( | ^8 @" C* _& N7 \
202.96.105.97 -> : s& ^2 V$ U! H' T, U
202.96.105.101 -> ( A+ ?6 o) G7 o9 M' b: Y2 N# j6 h
202.96.105.150 ->
, S( @3 o! `% ?; b& `9 Y6 v 61.153.112.90 o* e) v% S9 x, i
) l5 I4 T) M+ J r( @
Ping statistics for 202.96.105.101:
- P3 r/ K: m' |- M% G Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
n( z- f1 Q- |. N' F& n Approximate round trip times in milli-seconds:
+ N2 g! l9 Q5 c, c. B0 D' [+ p Minimum = 10ms, Maximum = 10ms, Average = 10ms
( ~+ B5 t! l1 o9 Y! D" A, J
. A4 |- ]9 F1 o- ] 从上面我就可以知道从我的计算机到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这几个路由。
. ~( g2 t; }3 n& Q
% d% S0 S H; j& W -s count Timestamp for count hops.
k' ^9 M4 n0 s9 x- h& m3 q9 {2 O 指定 count 指定的跃点数的时间戳。
4 A8 t* c% z. q# q6 ^* d- [ 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 8 U8 F" w- _8 H) T6 q5 e8 q* i1 Y
-j host-list Loose source route along host-list.
1 M& g. M. x, r$ M( a利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
% a4 f# N* A9 z# _0 r4 b8 {% ?9 Z5 O" a4 L6 a
-k host-list Strict source route along host-list. J; k" m, f$ R( V6 c8 e
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 1 x) K/ T' I- E# E$ }3 L
-w timeout Timeout in milliseconds to wait for each reply. g6 H2 Q& s2 Y; }. H4 @, P
指定超时间隔,单位为毫秒。
1 P6 e! s) i, s1 I 此参数没有什么其他技巧。 " R* q- |4 Q* z
& E8 @7 d- ?1 D: G
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:1 I4 y2 l7 l4 j9 O
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
e8 }4 c3 m. o" e& o9 t "DefaultTTL"=dword:000000ff ' V3 \5 N# M2 @1 ^: \- g9 `" W) z
255---FF 5 @7 R: ?# ?: Q$ q7 _
128---80
4 q. ]. E& p+ P( X& t F 64----40
$ p# }# I' l7 r3 W 32----20 |
|