- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 0 {& K& w8 G0 m2 Z$ j
( o6 u4 B) h- J
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
: Q. x4 G- k5 l1 [6 a7 Q. |! n7 C4 O$ `0 u; T! M3 g6 _. g
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-list6 d! {4 b6 O# E: x7 ^6 N
; `6 q. V: t5 d. Z: ` Options: * m/ ~8 l* a* j6 W" s+ ]9 o- A: m
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. $ L) k8 r% N& g3 B2 _4 t6 u' o+ \4 B
不停的ping地方主机,直到你按下Control-C。
6 L- b2 c' Z2 ~; O( x S6 G. { 此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 ' ~2 I3 i( n6 @4 n( \
-a Resolve addresses to hostnames. ; L) ^: x7 j" Y3 `* d1 H
8 @# f& ^' P# D1 _* b" H; {
解析计算机NetBios名。 & R6 y: _2 W1 W5 S5 T9 f, |6 ~4 T
4 |3 ?; E1 R( o! N( p
示例:2 q8 D* Z' L, ]
3 r) V1 G0 {* Y0 {/ |$ k/ x C:\>ping -a 192.168.1.21
, n% ~/ @. {4 y0 l$ u' D) f Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
- q% @( j! b; D" I7 d6 |; k5 f' Y Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
) z! g4 m0 {* I' k5 c. V# A5 Y, l Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
, r' u3 @4 |4 S/ u Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ( I& N- l; a' w$ f
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 # A: w: Y: z( i, |; x
Ping statistics for 192.168.1.21:
8 z8 d3 u) ]' x8 l2 I Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 6 u9 g$ E+ |$ C( I. k5 U
Minimum = 0ms, Maximum = 0ms, Average = 0ms
7 U( n' V: @4 X 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 $ p3 o, o R, c' x+ c
2 O" J) @5 _2 Y# \8 v -n count Number of echo requests to send.
1 l( l% w0 j' C$ i' t# ^9 f 发送count指定的Echo数据包数。 + `+ v# ?0 }/ p( e( r
6 F, V& |( X$ p+ b% H* ?
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:9 i' J: C5 i# X3 g) z& J
* x. N- s! ^4 _ C:\>ping -n 50 202.103.96.68 ; C8 Z$ |$ x6 k: |% N' d
Pinging 202.103.96.68 with 32 bytes of data:
8 m) c% n1 L7 C! E4 v- Q+ \* ?
2 e0 I* f+ c9 y( L) l8 [ Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
2 t/ V9 ?) n: k4 `7 d Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
; b* S9 [/ i5 _' f7 U0 D6 Q+ b Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
' m9 H$ h3 I0 j) u _4 d' J$ c Request timed out. ; k7 \! f& p I$ t% r
……………… . l& ]9 O; h2 A/ X
; \; M* }. H. v# {5 j# x. @
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 & s3 [+ a" ~4 S0 }2 j \4 {8 V
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
& C' _% V$ s' D Ping statistics for 202.103.96.68: ) ]. @8 o7 K1 z+ `1 G! ?
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
# O# v S8 S* U; v9 i3 o) C4 ]9 Tound trip times in milli-seconds: # K, I0 f9 h( F5 R. _8 M
Minimum = 40ms, Maximum = 51ms, Average = 46ms u. \3 W+ B ^- O4 y
" m/ I4 R0 u! [, W8 M2 v, `
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
# j/ p u5 Y+ w% A$ I- S4 S) m -l size Send buffer size. 定义echo数据包大小。 3 [/ u6 l- }$ B
: H7 |5 H1 y7 q 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)9 ]) I; B! P* r8 {+ u7 E3 ?7 r n" g
# ?# l: p! m4 O
C:\>ping -l 65500 -t 192.168.1.21
" y( T( z# N$ \: x) R1 k2 P3 ? Pinging 192.168.1.21 with 65500 bytes of data: ; w' m: {4 E; z G; }0 P) p0 m, p: N3 [
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
3 ?" `% g1 x _. a. i9 Q% T Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
! ?% K8 A# O7 J5 X q: o( q ………………9 `/ A f+ Y% a' f% o
+ B) ^1 T% ^" V- s, ]3 r3 } 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
4 L Z' a* O; M' a& O [& _3 P r6 J2 N! K( ^" [" ?0 w6 f8 |- Q5 b" J
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
4 Z) D ?+ G7 I# o- Y4 w' O 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 + f, o8 W# ?- L9 [* g; i
-i TTL Time To Live. 4 e2 U" Q) N) [# [ w$ v& r
指定TTL值在对方的系统里停留的时间。
F2 Y7 y: \) v- M 此参数同样是帮助你检查网络运转情况的。
9 }/ W. G, \2 _+ _ -v TOS Type Of Service.
( ?) j7 u6 |/ x9 q; [ 将“服务类型”字段设置为 tos 指定的值。 8 t% ~3 O3 |7 W# A' [2 X6 ]
-r count Record route for count hops.
' ~% G7 z7 }$ c 在“记录路由”字段中记录传出和返回数据包的路由。
, c! }( ]0 [" ]& g; S" u
- t V; |6 A" g3 y 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
: I9 }6 I$ m) u- _ C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) : ~! E- q! y4 E8 A4 g6 V+ o* Y
6 b: W5 i; z$ l; p0 Z Pinging 202.96.105.101 with 32 bytes of data: / D9 x0 `; K5 ^! G3 U( z- Y" s" ~
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 ! B& S& K3 A: {0 b
Route: 202.107.208.187 ->
% T$ B" O" N1 `' M2 R& i 202.107.210.214 ->
4 [0 Y* l5 O: y, {6 _2 b$ d 61.153.112.70 -> 1 ]' [( a2 ^" w, F
61.153.112.89 ->
) M7 @0 S. U# ~% ] 202.96.105.149 -> 6 u( q6 f% F. X; f2 U& X
202.96.105.97 -> & Q1 q! R+ G2 ?9 x' U/ x& U
202.96.105.101 ->
" R% v2 a# m9 o' f0 I6 y$ S 202.96.105.150 ->
/ G- y1 ~2 U; A6 o: \% t# w 61.153.112.90 & g0 C+ H% I9 Y/ O
9 ^( I/ Q* [+ {: V$ L. P
Ping statistics for 202.96.105.101: 5 o( q9 D* w6 p& k5 G
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), / w \+ J7 O7 u7 K+ G2 z
Approximate round trip times in milli-seconds:
* I5 {- b# c6 [6 V' h Minimum = 10ms, Maximum = 10ms, Average = 10ms
0 a6 i6 Q& G6 c: |
# u0 V9 a" m; |& v* B. A+ s 从上面我就可以知道从我的计算机到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这几个路由。 ; r3 C: T) x0 c. G0 e4 t
8 ^! m3 Y5 n) ~, O: N) s# K5 V -s count Timestamp for count hops. 9 G) D/ S9 ~. w6 k" [+ G2 o
指定 count 指定的跃点数的时间戳。
4 Q$ @8 j0 m; H/ ^" q0 S$ k8 _ 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 8 A' L U- x6 A6 Y
-j host-list Loose source route along host-list.
J' Z& t; N( I0 O0 v3 T2 J8 B利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
6 r/ V+ n2 N7 i N; H: Q/ O2 W
. ]5 V" G2 a1 j3 D, N -k host-list Strict source route along host-list. ( m0 f/ T$ o& f
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
. O7 s2 b0 r* ^1 o" g( j -w timeout Timeout in milliseconds to wait for each reply. $ m [5 S: A2 K4 [ Q" |3 i
指定超时间隔,单位为毫秒。 7 j8 i6 Z+ U- E! p! l
此参数没有什么其他技巧。
7 w, m5 h9 Q8 b0 J8 T% h2 s3 O: ?5 R" O/ `# r# n- B
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
4 m& [' u. B" W5 J0 S9 p [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
9 Q2 A. ~* S* }; Z' u "DefaultTTL"=dword:000000ff
5 f9 B* i3 ^) G 255---FF
/ k8 s) P. y6 a/ |( U 128---80
! ]7 b' Y; ~* {# l0 B* F6 E# c 64----40 : F# }: _5 ~' a: P+ e" _
32----20 |
|