- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 ; c$ C; G, N' K2 v$ N: W6 s2 s
0 ~) V4 n* Y1 ~$ l( e$ c, _ 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
6 O0 B! B0 V# s R+ w _* J. c
5 h# @8 P% I c. d 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
7 i/ l" S) [1 N0 _, C9 \2 }' R0 g5 {+ W1 ~9 C& ?2 B
Options: 3 m& k2 j& v$ p7 I% q. H
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
* W$ p8 t) A& r+ h" | 不停的ping地方主机,直到你按下Control-C。 9 }; e3 t/ Y" a. u2 R" N
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 ; a# K* w c2 i! A0 c0 q
-a Resolve addresses to hostnames.
& R4 z I8 e/ g4 G; s- F
8 }# u% J% U9 F, ^ 解析计算机NetBios名。
6 Y- b0 M! y2 g2 g. P/ u" |7 i, Z# q* P! t& }' W# E4 T
示例:
, ~; @6 v0 l! ]. |/ j# Q: D2 E/ f2 _( v. \! s% A
C:\>ping -a 192.168.1.210 F; V* Y9 G: V3 z+ V0 F. u+ U
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
* n$ q- [4 \$ U3 J! s Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
+ p) k2 P' A+ Z$ V( n- i Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
- `8 Z' [ S6 H9 V( \ Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 , N2 @; ?) V! }3 L
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
5 h, l6 N; @; F7 w Ping statistics for 192.168.1.21: 7 p! r% {' x( j& J/ |4 e( s
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
, f& p9 N' }* L T0 _# E' \, K Minimum = 0ms, Maximum = 0ms, Average = 0ms " i+ ]* d# J" Z7 l5 q$ R ]
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 " Z: z* [4 R! b4 }& ?5 `
5 G% v! h! L4 R9 s& z) \# a1 x/ i -n count Number of echo requests to send. $ P0 q, [# N. `& l% @+ J
发送count指定的Echo数据包数。 0 G& d% z6 H y7 K8 P
8 ^/ y1 T0 A# V$ z. c; o 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:! _" M& q% J9 A4 q- u
) R1 a- a q6 [! p1 m C:\>ping -n 50 202.103.96.68 9 a/ a8 Z/ J+ m# p# ^
Pinging 202.103.96.68 with 32 bytes of data: 1 t& B, Z2 O" v5 [. l% a$ \, k
2 M, p4 m8 t9 { T8 r8 S
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 1 X1 z( \6 h8 W( \' U" U
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 * u% }. r9 H) \) w7 b9 ?, m. G- H Z; P
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 * X8 t. G n- a% h7 |. f6 q3 q
Request timed out.
+ E% y0 g" I0 @3 Z; v* M ………………
9 c! v5 N% N' S7 s4 H6 F3 V5 ]9 K1 `/ ^: M6 X4 H
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ! v9 k+ D/ W2 x2 k: _8 v& [( f
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 a4 z. {* f! A4 q+ F' D
Ping statistics for 202.103.96.68: 9 Q- N( \1 m' U. G
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 1 r- D0 I) Q& N' E! J
ound trip times in milli-seconds: ) T& O& v% v, `, y
Minimum = 40ms, Maximum = 51ms, Average = 46ms . j% t" }1 s# O( g5 [+ Y
4 Y/ |+ t- @ G& _1 x" g; U
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
9 {7 R6 ^% y! a -l size Send buffer size. 定义echo数据包大小。
6 O8 F+ ~& N2 F& }! ]! r2 v) e G; _7 E$ m c' ?1 J! E6 F s
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)5 M+ p- w8 |& ]9 f6 M& |
6 k' b9 \) `9 L0 o8 l Z+ ?
C:\>ping -l 65500 -t 192.168.1.21
( B& j; c9 C& }9 m) L Pinging 192.168.1.21 with 65500 bytes of data: # m: p, {* H2 |% E0 L, ^ C2 i
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 S8 G1 x! W4 Q' S( N8 c: l
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
b6 u* _1 x" M; S8 t0 {7 U. ? ………………
' {; \+ b4 `4 Z
# n7 L' X% O5 j q1 g 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
& S4 y0 }7 K ^0 [' `# U5 f6 ]& b) T" E2 P5 f# k8 i( Q
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
3 j4 n- q- d( Y1 J1 A 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
' j: i/ t7 j J1 l1 @( `) | -i TTL Time To Live.
5 P3 _9 ]7 m: X6 U( b, z4 c( l 指定TTL值在对方的系统里停留的时间。 5 M+ W7 _! B7 P
此参数同样是帮助你检查网络运转情况的。
W, f" M; F4 x) H7 L7 W -v TOS Type Of Service.
" [+ c8 j, T# P2 E: x: x 将“服务类型”字段设置为 tos 指定的值。 $ y. ?& I: V* `9 P6 P- |& _
-r count Record route for count hops. ) t0 M& g- H h
在“记录路由”字段中记录传出和返回数据包的路由。
7 m" M4 |- w% ^% V) Q- f8 @- q9 i9 @
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
6 e* @0 e" t( t# c C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) & x y" C3 f5 {% U: n
- U- J) o! I. q6 g0 w( w3 Y8 H* N
Pinging 202.96.105.101 with 32 bytes of data: 2 x7 P) _& c: p: I/ _& N' O, ^$ X
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
/ c# Y( I7 p2 |* x/ L# J. j Route: 202.107.208.187 ->
1 G- F5 W5 o' A; k2 o* u# q/ i 202.107.210.214 ->
% h O. D' K" d- l6 A: P 61.153.112.70 -> $ m9 M/ w, G- V( l
61.153.112.89 -> / |7 t& O5 z% U9 ~, E7 `) i4 ?
202.96.105.149 ->
) {+ X6 C' W8 X; C0 F Q, l 202.96.105.97 -> ' Z$ M. r2 W! M" H8 Z( T% G5 Q
202.96.105.101 -> ) \: Q9 _1 _0 V j) R
202.96.105.150 -> 5 q( D2 R! ?+ C t8 _4 w# x0 N) y
61.153.112.90
) D5 w$ O9 Y: n& l9 w9 t6 I v' x) F8 k, S8 I. Z
Ping statistics for 202.96.105.101: & e; h& s8 S e. z+ W8 U: h
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), * V0 g, u( j" h
Approximate round trip times in milli-seconds:
4 Z( d6 f! k0 j }6 l1 g8 d Minimum = 10ms, Maximum = 10ms, Average = 10ms * I" h" s0 s) m$ X) c( U9 @
& c4 G& |- G2 M3 I. V! o3 l f 从上面我就可以知道从我的计算机到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这几个路由。 n/ `( v' H7 }5 K' W5 h. ^. g
0 e/ G8 M- b, S( Q" k) r -s count Timestamp for count hops.
: o g; \/ K: Y+ r1 z& l 指定 count 指定的跃点数的时间戳。 % A& }2 e' F+ ]; L5 f2 @( _( Y
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 9 f: w5 C, L/ V
-j host-list Loose source route along host-list. 9 C! L' t1 B% \8 d2 u% J
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
* F1 K$ Q! ^8 {1 A/ U3 s
# |. Z7 t' ~. P' J# y -k host-list Strict source route along host-list. 2 p8 m) d R: v$ w3 H9 K0 y
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
h1 U/ e: n" m9 S8 a" P0 ]+ \ -w timeout Timeout in milliseconds to wait for each reply. ; Q8 V+ _2 W1 T; a/ m( E7 q% K' @" F
指定超时间隔,单位为毫秒。 1 e8 F$ `5 f. b# g8 o
此参数没有什么其他技巧。
3 e, t7 P, Q; {; R P
8 o+ w& a* {( c ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
# x" E5 M/ e2 C( C [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] % t5 ?- E& ~' w* [3 e5 b, U$ H
"DefaultTTL"=dword:000000ff
2 d; x7 A3 s- N$ m 255---FF
% r5 j& z% }1 s+ ~ P% {) I 128---80 ' M1 [3 h7 z; k# ~6 p
64----40 5 L; A! C7 n# B8 [
32----20 |
|