- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
% \. O5 `+ m; K8 X8 X
2 c4 S, h1 P7 T$ S8 @' l 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
/ E6 i# Y/ s7 ^5 {+ ?, v% T5 I2 z1 w, t2 E- B f4 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
2 f, }& G" T, n2 L3 u
2 M4 J s9 @1 C1 U; i Options:
5 Z0 l. T. v% m( R- N' ?5 G -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
; M9 m6 ^) f! i0 @" ?+ T! s 不停的ping地方主机,直到你按下Control-C。 . @6 R1 s% ]* f" N* v; y0 k
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
8 |; c. [ [7 K# {( O/ Z* L -a Resolve addresses to hostnames. / I: J; i9 \0 m" K4 A7 Q
( J/ n9 o8 Y+ A6 W/ I! B) s6 R) m 解析计算机NetBios名。
( ?& A4 F0 d, {- }; I( T
+ e8 L: ?' @4 g/ D8 H8 d 示例:
- Y" P1 W: Y' E6 v5 b! F7 ]
2 K; T' \; i. t. G5 r# o2 M C:\>ping -a 192.168.1.219 _& i3 h" Q7 f" r1 _$ |) z
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
9 V5 l @6 i7 V/ r7 y Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
. [8 F( _4 O8 z: C Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 % {! `& e1 {; d! R% j) b8 E
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
% @# t0 l' i9 D& L3 w Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
1 @+ I! n5 |6 b( k Ping statistics for 192.168.1.21: ( L8 @% ?3 c1 I
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
' O4 \3 w; k$ H1 l* q6 t; n Minimum = 0ms, Maximum = 0ms, Average = 0ms : q' J; x Y% P) n# D
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ! c6 d' `/ `' q4 C5 K
8 Z4 `) Y1 q% [; ` -n count Number of echo requests to send. % O. b7 O+ ]: e! q6 B
发送count指定的Echo数据包数。
4 U: t1 m; s0 B% C2 j4 p; L8 H
" m7 t6 o2 e! j( ]. J 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:( s" O. r" V; M8 Q/ F c
2 R5 s5 P4 @* r$ d: k& g
C:\>ping -n 50 202.103.96.68
$ \* [+ ~+ U. W j Pinging 202.103.96.68 with 32 bytes of data: 2 V8 n( ]3 i& s
; Q7 x- K7 o5 ^$ @
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ! g5 I7 @3 s/ y
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ( {* `3 u. ~3 g' @! I8 Y* ]
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 j: c3 i* N% D* B) t
Request timed out.
) X1 |, _0 S( a! w, U ………………
3 y2 P' V, R( a6 ^
* R O6 T& p! q1 t Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 : q4 o2 `* W4 _- j7 S" [/ Z
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 . w4 h6 V$ q1 X2 d
Ping statistics for 202.103.96.68:
) X9 e. W" c. _5 S1 ]! Z- W Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
% x# x6 X; G% round trip times in milli-seconds:
% U0 m; z' ]8 R Minimum = 40ms, Maximum = 51ms, Average = 46ms ; U7 o# ]) W0 R
7 O$ I- A6 ~# C3 v( X+ F' j 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 0 i, z4 ^& Z; L$ J H" Z
-l size Send buffer size. 定义echo数据包大小。 ' ?& x7 d8 @* y6 j, P" @" }
2 F( x+ e( e3 U5 Z. ^$ u- p5 R
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
+ u* A V. @2 s$ i0 A! s' r: y& X, L# B/ G7 M
C:\>ping -l 65500 -t 192.168.1.21 / t8 p" Y: F) n
Pinging 192.168.1.21 with 65500 bytes of data:
1 `1 r: L0 o6 N8 |+ B3 ? Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
" @+ ^; {4 T1 |. l; X Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 % T# }/ E: v; t+ w' b
………………
x9 r2 e2 s- q# J) Z7 q8 O/ w ^) y( a
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 7 G, D+ M0 P- a9 N& U
* c5 \8 ]7 O2 W6 @5 S0 d
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
" f ?- O: G, _- l! ~. I8 y* ^ F 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 3 n. q5 \. V5 |/ l5 x- H
-i TTL Time To Live.
\ T; y0 R6 {; `" A 指定TTL值在对方的系统里停留的时间。
) f( e* t9 T4 |7 v 此参数同样是帮助你检查网络运转情况的。
; D- {' H" Q$ _7 u) f! d7 g( U -v TOS Type Of Service.
' c/ Z- T+ v* Y$ f- T 将“服务类型”字段设置为 tos 指定的值。 ( p5 r9 j% x, `2 Y8 ?5 f
-r count Record route for count hops. * B# M4 l% O3 J: J
在“记录路由”字段中记录传出和返回数据包的路由。 # s6 `3 t! k' X( w* T: Z
0 k. ]1 q3 m- c9 |, c3 _
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
* O# {! W/ x2 ?/ o C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) . u; L. O) f, J% {8 |) D0 J
- `0 k3 U0 Q2 z0 B( \
Pinging 202.96.105.101 with 32 bytes of data:
: ?! w1 Y: W5 m& Z5 t7 e; ?* g Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
; I2 F K7 j2 d. L& n$ o2 j Route: 202.107.208.187 ->
7 g1 x" U }+ N2 j3 D 202.107.210.214 ->
# l: z2 ? E3 }/ {* y4 ~0 H 61.153.112.70 ->
3 M* m9 i5 N( V4 _, c3 k. M 61.153.112.89 -> ; F! J1 v" q! b) n
202.96.105.149 ->
" n$ o$ w/ m: f3 T } 202.96.105.97 ->
' r2 h. i- X; j* A* W 202.96.105.101 ->
; \" _ S5 q4 e1 e [ 202.96.105.150 -> 6 N2 t4 K! w8 a- N# `0 P
61.153.112.90
7 S' W9 Y2 a2 l) |! W6 `& T
% E0 G7 d6 h! x: O, C3 y9 d' @% S' z Ping statistics for 202.96.105.101: 8 W6 L) J3 @( U
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
( B! C8 k/ C% e6 L4 L Approximate round trip times in milli-seconds:
! m7 ? f j- p, H Minimum = 10ms, Maximum = 10ms, Average = 10ms
) v5 M) Y3 `" @4 L. i4 q! N' W3 A I) U# N; g6 d$ x7 b7 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这几个路由。
% A7 ]( Q$ w5 G+ y7 H6 H ~/ `: [! E1 c. s' D9 [- S
-s count Timestamp for count hops.
* [& G' r9 \- J# u! H4 n$ { 指定 count 指定的跃点数的时间戳。 + B" N8 j+ _/ U/ v
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 . M# q- R% B2 z% V S+ G2 t
-j host-list Loose source route along host-list.
$ `) t% R& G( J8 A+ C' Q利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 1 \0 l% m7 b: L9 y6 Y
& d: c7 i; }, J% q$ M# r- b -k host-list Strict source route along host-list.
+ A; R+ T: M# I$ k+ M* T利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
( P6 x" ~+ R) g/ V4 l -w timeout Timeout in milliseconds to wait for each reply. / o0 q3 }" p$ w: V Y5 z
指定超时间隔,单位为毫秒。 ! z" H- I# l# ]2 j* I) P
此参数没有什么其他技巧。
0 p" z! ]3 X( D5 W/ {
0 S) @3 _( B- p5 b ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
! Z( }3 @( d/ T [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 7 r4 n2 Y, n) Z* Q h1 v& C
"DefaultTTL"=dword:000000ff & q/ U* A0 x8 c) S
255---FF
9 u4 l2 ]1 c& v5 t6 t1 c8 e& F" G 128---80
4 ?( x, S- w9 H! y7 Y/ } 64----40 O0 Y0 [' e0 x
32----20 |
|