- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 3 e) }4 ^( r: I8 z3 [/ m* l
* M+ C ^+ E8 B& f8 @% t U
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
2 b% T% b* y7 u& [8 ?0 C
, h; X, X( x7 E/ Q: [) n, f8 [* p4 Q 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
! t* y6 G* H& S8 `# N/ a7 G1 ?6 n% Y w; x
Options:
+ V. |: D- B2 w0 L- c -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
D$ z. p/ {7 A2 {& b( j 不停的ping地方主机,直到你按下Control-C。
3 E8 C) a/ ], @- i 此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
: C( y: a2 r& _& e6 x) K8 A -a Resolve addresses to hostnames.
! \2 n$ D# o ^0 w* P
+ T+ b% v$ V1 E# e: @ 解析计算机NetBios名。 - ]* R% q4 f# Q a# F. N4 \" C
% _% r( D `; s2 j1 E 示例: s+ H, E# V0 S/ j* v
& e- o* i( b4 o0 o. l' U
C:\>ping -a 192.168.1.21: X2 x8 t, T5 K/ C
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
! E0 s' C# ~4 m7 X+ c7 P9 m8 @ Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
" C, K2 e7 d' D# `0 M: y! c; W4 } Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
. A, U" n' Y% E, e$ r Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
& }5 \/ U# T9 e$ U2 C+ ?. n1 S Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ) e8 o! ^! u3 y
Ping statistics for 192.168.1.21: & j4 y" ^2 A+ y. g
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: " e2 ^9 ^0 y8 B- K( k& i7 m8 c
Minimum = 0ms, Maximum = 0ms, Average = 0ms ( ~5 w9 H) z7 g# g4 b
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ! a* f/ O$ w8 B0 e8 B. O$ J- F8 P* _
8 T* a% ~9 t, N9 i2 U
-n count Number of echo requests to send. : k7 O4 [* K, {5 u* n+ N
发送count指定的Echo数据包数。 . ~, g4 c0 f7 S, ~4 i7 ^
+ t5 r" W9 j& f$ h/ i @ 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:) r- I3 c& g2 q7 C, f+ k# |: z
2 p/ q: x. M( N8 M" ?; l- Q
C:\>ping -n 50 202.103.96.68
" P4 B0 z) q3 W/ x+ ?( s Pinging 202.103.96.68 with 32 bytes of data: |/ b3 b0 u: U! i, ?. L
6 T5 @0 D1 M+ J
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 + F: `6 R4 S3 A+ {( ~' \/ _
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
- E" r+ N3 ^. W* h: L Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ) n7 ^4 I' e1 J
Request timed out.
3 ?* H, T9 r/ Q( W( ` ……………… 2 F$ o9 L) C0 h- o
, P! X! c3 y- q
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
* `0 _& E2 Y8 [1 b% r4 E1 B9 O Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ) Q/ W( B; b; G9 q* ^% I
Ping statistics for 202.103.96.68:
5 s8 @, }) j/ _ Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
1 U) y' F3 {; N$ h& Wound trip times in milli-seconds: % q" ?! B& o9 T3 w( O g( k
Minimum = 40ms, Maximum = 51ms, Average = 46ms
) _8 X4 e" k( f* e u/ k+ N, v7 I+ h: Y- Z( ]3 ~7 c" z% U9 B
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 3 n3 o. h' l* I1 H$ g+ |
-l size Send buffer size. 定义echo数据包大小。
' N# F H' }, D- g( {
/ \/ N3 j" j1 ]7 C) T0 E' d) y 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
# g+ P- k" v1 A! I. \
" c# l0 b' k. J! z C:\>ping -l 65500 -t 192.168.1.21
- j( B' I: L n( z6 D/ k2 w8 x Pinging 192.168.1.21 with 65500 bytes of data:
" [* ?, e- A. m0 O) ^ Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
# P1 ]7 U( T! v( K Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
+ E( A& N4 K+ c6 `$ u/ P) { ………………0 U& b* M# u# ~8 y
6 ]3 s; O0 U$ Q
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 - }- u9 }7 p$ z/ K# A
% R; D3 J |. u' R
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 9 _% J! \1 E: I8 n ?( `9 Q
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 ' f0 [' _) \8 J/ U/ X: }0 X$ j4 }
-i TTL Time To Live.
8 U4 d4 ^( `% Z" b" ?( R5 p 指定TTL值在对方的系统里停留的时间。
9 d7 `: J' n- ?7 ? 此参数同样是帮助你检查网络运转情况的。
. l4 f$ j A* J/ @ -v TOS Type Of Service. / H3 d+ Q* @) o+ X
将“服务类型”字段设置为 tos 指定的值。
7 E; a D( C9 Y/ Q2 J, m2 F$ }8 j -r count Record route for count hops. + E2 w* T% S$ o7 L* H
在“记录路由”字段中记录传出和返回数据包的路由。
. g3 y# K0 c3 r* H
& V$ R1 z: P/ I8 O 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
1 E$ i, z1 q( q/ z& B C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) : Z8 G4 C0 J+ h( Y% k
/ U. V D# Z# G4 x1 R. C& e; e Pinging 202.96.105.101 with 32 bytes of data:
% ` N/ l* E* i& v# i" E+ ~/ a8 v Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 * N9 {( a$ g6 }# k! ?
Route: 202.107.208.187 ->
( @! |+ h% H$ F 202.107.210.214 ->
, l9 i( I/ X; h8 o; u3 V 61.153.112.70 ->
: t0 U o' Y+ \- X 61.153.112.89 ->
/ Y0 n7 X; E6 x+ }% Q5 Q 202.96.105.149 -> 0 ~3 g2 ]4 n6 K9 e
202.96.105.97 ->
0 _& ?$ Y3 @2 Y% ?2 G5 a 202.96.105.101 -> 3 }' c0 p" t5 ^' j5 W% k& H- T
202.96.105.150 ->
6 o9 v% y: G( r# N+ J7 w/ K 61.153.112.90 , g# Z4 E& q4 [1 \9 W+ v6 n
8 r! d, R f7 d" F* y! u
Ping statistics for 202.96.105.101:
8 S2 Z5 G) [ `+ p+ j3 ? Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 5 ]0 g5 U+ I' E& b- i- ?$ a% {
Approximate round trip times in milli-seconds: 8 M+ a! H5 d/ e9 F2 h' {# G# y, M/ Z' ~
Minimum = 10ms, Maximum = 10ms, Average = 10ms 4 U& b: h) y( p7 u1 O. m. I
0 p8 w/ x) m& Y+ D i3 b
从上面我就可以知道从我的计算机到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这几个路由。 7 j4 r: H3 U# \. Z8 z, R1 Q2 \
8 w! A: t3 u$ C. n
-s count Timestamp for count hops. : K1 T/ e( Q& V, |+ b! I
指定 count 指定的跃点数的时间戳。 4 b! p. T- e% H, n, _4 D3 W4 q! |
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
; G7 `2 r4 b3 s: g8 J" W. ?. J -j host-list Loose source route along host-list.
+ G ~8 c1 A" `0 O2 Y7 @利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 % H. Q; w" N* m4 j7 O
% W1 I; n$ [9 |6 a -k host-list Strict source route along host-list.
0 J: t; W4 g k利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 $ u* [ |4 x, ?& D& D5 J$ F
-w timeout Timeout in milliseconds to wait for each reply. , _: N, R2 J4 c# t+ t# |
指定超时间隔,单位为毫秒。 $ i8 J& L! G1 y# @
此参数没有什么其他技巧。 + f& O0 J7 ^5 ]
: c" R& \. S$ I0 V" r9 _+ e1 n ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
8 c/ l- y6 n) E8 ~ [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 6 S4 i) [* }3 ~0 x6 N
"DefaultTTL"=dword:000000ff $ V/ N" t, m& }2 j' h# Z4 |. H/ o
255---FF : o. u2 Y! i; h+ }: T' Q
128---80
/ C T0 A2 j+ l5 w% U 64----40 " \& k& w4 a2 l% ~6 a- X8 I+ v
32----20 |
|