- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
- u2 o& x3 _& u; s5 C
7 T- C2 w' @! z 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
1 ^9 v4 {6 y/ R( W5 [; R( l! x4 L% ~4 c4 O; ~
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-list3 l- f- D$ O: f- ]3 ^
3 O, T) r. p- s) }) z
Options:
5 P) b9 f2 f0 Y' L0 y; F -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
( s. v6 Q% Y& @* R* \, a& y5 D 不停的ping地方主机,直到你按下Control-C。 3 U7 M( a5 b8 z
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
1 Q7 s3 f. }6 M5 q, g9 I; t$ i -a Resolve addresses to hostnames. . {/ h0 o2 g# I' v
! | x D$ e4 J 解析计算机NetBios名。
/ I1 E, d# t% W: {
' W' |& v E2 l. y$ o2 ]" g 示例:0 }1 X$ Z! r [
& a8 V& P! u b2 v( N- B# |
C:\>ping -a 192.168.1.21
1 t* V/ z' H8 l& L3 F1 u Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
, ^ Y3 ?! Y7 U9 S# x) y Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
; q/ D6 |! D5 A5 R+ \9 x Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
& o- \& V6 {8 @* y Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 - s1 a3 l9 Z" B% t6 g7 R% k* O5 m
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
0 N9 K5 v& V! F: ^2 T w4 @8 u0 q Ping statistics for 192.168.1.21:
6 W! m% w& f; P( a7 z2 P g _ Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 1 b4 ]' m8 m. Y. i* G$ {- d& T9 ~
Minimum = 0ms, Maximum = 0ms, Average = 0ms 6 ~$ K7 A1 S3 ?) K* x
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
2 b: h9 ]+ f8 |; m7 k' U2 t4 }
5 s. Z; \% H, C4 F+ L -n count Number of echo requests to send.
* ~& X5 o# l( Q7 [ 发送count指定的Echo数据包数。 / Y$ ?4 c- d+ e$ h/ x/ ?
* N, {! s! Q6 x/ ~
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:& d5 j2 t d6 h7 x
( K' V0 P, `9 f" k& t) ~ C:\>ping -n 50 202.103.96.68 % p+ ?/ k! p( P. C8 F
Pinging 202.103.96.68 with 32 bytes of data:
+ L9 \ I, _2 Y/ F3 p" F5 U% \9 o3 X, g" D9 i2 f1 R" ]0 K' a
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 w% V" n: S; Z
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
6 F- f8 J& W- r/ q Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
_: k+ x6 k3 [/ L+ e. G1 q! w Request timed out.
! W3 B4 U5 O- B' y d1 u' Y ………………
7 V- w$ K1 ^$ t# g" \1 p( v$ N. P) {$ j% V& E9 r. G. ]
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
9 ?' F( K) h/ V3 E2 V4 o9 t Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 M l: V6 G; | Z2 g) i Ping statistics for 202.103.96.68: p7 @7 q; Q& f7 `$ H+ F
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
/ ?7 S: q0 I4 C% Q6 I Kound trip times in milli-seconds: ! Z7 O9 A9 \: [0 o$ E4 k7 R
Minimum = 40ms, Maximum = 51ms, Average = 46ms
/ F3 }* r$ M w! S- Z9 S. h( _4 y* R5 Y5 u$ `" M( X: u
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 % p, w( G4 y3 q
-l size Send buffer size. 定义echo数据包大小。
" H k9 }- g6 f4 W; O C1 s4 }: @2 D& b; R \
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)+ f+ Z4 s$ m1 Z( D8 N
+ b6 E3 H$ i* A$ [: l2 `$ f C:\>ping -l 65500 -t 192.168.1.21
( h- e! _. a2 W& U' l# W Pinging 192.168.1.21 with 65500 bytes of data:
, P w' O( s; | Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 3 r f( [4 ~- I o' s# Q9 b
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 . _6 A( F( t W4 f- m7 \. e
………………) h# l' V: I _- E! J2 Q& A( M+ l
( s# K; |3 p6 B# }( j 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
! }1 K# T! R0 S, x$ U5 J
2 A2 g1 o( W0 R: \- y# J -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
' Z' x4 k3 ^: w7 a 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 / b: Y9 i1 O9 P
-i TTL Time To Live. q8 R& B0 M1 V1 Z
指定TTL值在对方的系统里停留的时间。
3 z+ U1 }3 Z7 Q; X0 h 此参数同样是帮助你检查网络运转情况的。
9 U& p4 I: F. {1 ~# ]2 I' V) N) I -v TOS Type Of Service. / B) [+ v- W1 w
将“服务类型”字段设置为 tos 指定的值。
- ~ d c& ]! ^. x5 k4 Q: { -r count Record route for count hops.
" u8 a. R& a* u$ W$ D 在“记录路由”字段中记录传出和返回数据包的路由。 1 A# u9 k! n! ?' k6 `' U v
! l! K& C; e. W% q# f 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: , c a% |+ C/ Y( F7 ^" J
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) $ j7 ?+ E' `0 h
2 ?0 d/ a& T! J: o' ? Pinging 202.96.105.101 with 32 bytes of data: 7 [. @, S+ H2 D. A8 i: t
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
( I: t9 k/ g6 F m* _9 N5 E Route: 202.107.208.187 ->
/ v1 v5 m( B& Z 202.107.210.214 -> + r& ]. v0 q; e
61.153.112.70 -> 8 c" `+ `5 A9 {+ \! @# X+ P D% W
61.153.112.89 ->
3 Y4 B1 n/ S* V2 L# M) O7 U 202.96.105.149 -> 4 e- R. ?3 b( Z* Z" j1 \
202.96.105.97 -> 8 X9 U! O4 w' {4 @" n, v
202.96.105.101 ->
! }- I9 X+ k& [% @7 s, M, V 202.96.105.150 -> & n4 ~+ n- B- V9 \
61.153.112.90
4 W: G# m7 V! ~/ [
# c5 w6 e$ O, n' [) r Ping statistics for 202.96.105.101:
) j% v# O9 ?' t9 O. G: x Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 7 W5 z+ K. O) \
Approximate round trip times in milli-seconds:
+ u! B" q6 e% d1 _( d3 n2 d& o Minimum = 10ms, Maximum = 10ms, Average = 10ms , I, w( z9 Y6 W, A5 O
2 Y1 R t6 x$ U+ u, M3 B% 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这几个路由。 # P9 U, S, \, W7 K4 w3 V
: M" L6 u' X+ G% l2 J% O3 B2 b Q, z0 k -s count Timestamp for count hops.
! c+ k O1 R) j6 h% q+ d 指定 count 指定的跃点数的时间戳。 ; V+ [! E; X0 R7 _) u. {* n3 x
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
f, [. p! W# T, {0 |* b -j host-list Loose source route along host-list. , n1 R3 L; o- F) s8 a
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
( O, ^8 C; K! t: M1 y. d# J* e5 \6 u* o
-k host-list Strict source route along host-list. ; o, y4 I( a1 a: J" H Z
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
1 R. T9 u0 N% u+ D' |# }* C -w timeout Timeout in milliseconds to wait for each reply.
& e1 G n0 m/ C 指定超时间隔,单位为毫秒。 ; Y: [, @* Q( G: D2 L2 T
此参数没有什么其他技巧。
- p( j) {/ n9 P4 d2 `. Q; H, L" N6 _5 I5 _, n
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:: K; A; Y* b- r' r
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
, ~6 b% q1 Y+ p I" x2 [8 _ "DefaultTTL"=dword:000000ff
' Q B' K9 }; N# l$ s' f 255---FF n5 m: r8 Z2 M6 H6 v2 a8 g( z
128---80
+ D. P! v: Q- J# ]+ M) k3 K9 W 64----40
8 {, T2 e; n3 O 32----20 |
|