- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
! y$ g; X3 v3 p! o: O
% x: T% }2 V6 N+ {4 m$ b1 X1 Y 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:; u: T0 b; Y* K! a. M6 Y
% y9 p }* t' r( J3 N8 E0 z( K8 p0 ]
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
$ l# l* o4 D, E5 `# h* j; @5 d' O7 u: o
Options:
+ X# W8 w, C/ ~/ [- C8 y8 b5 d -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. / f0 h' `- f% [# l( [
不停的ping地方主机,直到你按下Control-C。 . C. D% h* H) Y6 z
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
: L( A3 E$ o9 N( | -a Resolve addresses to hostnames.
' c1 |/ i v1 S. D3 ~' i0 _* l) _) F; ], G9 b( U. s0 Y
解析计算机NetBios名。 , @6 s+ d8 J* I) c
& O; P6 a7 u( D2 H) w; V
示例:
: \" X* G, m$ x% J+ I0 @
. y+ u2 v0 V" N% }- I, ~ C:\>ping -a 192.168.1.211 v6 X% \8 ?/ \ x* ~$ O
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 6 s+ K& C- d' W% r. U4 n
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 # ^/ l+ G; ^# ~, m
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 3 R# t$ O) U) O( x9 r
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
/ x& w- G7 ^7 [( ]' L+ R Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
( ?1 M# A. _' Q. {+ R$ c0 J: g Ping statistics for 192.168.1.21:
2 @0 o v! G% o9 ?- V Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: " J* m5 i d+ ]+ L% T8 R+ O1 h7 F
Minimum = 0ms, Maximum = 0ms, Average = 0ms
! ]) o' X j" c; ]5 W; N8 e 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ! n" Y. @ J0 ?
0 ^3 j9 J) ], y, h: H, }
-n count Number of echo requests to send. ' A5 o* g! b3 f4 L1 |# H: U9 I+ V
发送count指定的Echo数据包数。
5 ?. g2 `- D$ u6 J1 Z ^
# E! f+ U/ n$ ]; ` Q" X 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:! x3 k7 p3 F1 {2 V4 }# J6 {; w
, c; P4 n1 Z2 E. p
C:\>ping -n 50 202.103.96.68 ! G! A% v* H; z1 M7 m
Pinging 202.103.96.68 with 32 bytes of data:
! S, M0 ^7 K: h( R$ J: A N a6 U+ ?+ Z# G& e j
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
3 P/ y8 r1 j6 @6 l' C: R Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
0 R/ ]5 i4 {. J" z0 g% b. r Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
- l8 }$ h) |1 \- q2 | Request timed out. : f* ?* u5 e B, Z
……………… 1 h6 Y' I+ r0 ]4 T: _9 o- u
! T1 Z& M. H- v0 a; E, G
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 x9 s1 b% i+ s
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 P. H1 I/ P3 c
Ping statistics for 202.103.96.68:
8 _4 u$ U" i7 Z) \9 c Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
' ^% I0 f' _3 a) Wound trip times in milli-seconds:
6 ]8 N# O7 j9 B1 L& F: N Minimum = 40ms, Maximum = 51ms, Average = 46ms $ c- d" k: K/ G; e; } ^" ]
& i7 k$ N5 y A( S. m, z' K
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
% S4 C+ t' ?+ M0 R9 {1 A3 h -l size Send buffer size. 定义echo数据包大小。
7 A1 [' {/ n4 u" O, ]: T
$ C% k7 I7 ~- [3 Y. U" @ 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)5 a- |7 W- c& W$ S5 \4 s/ V1 O
r5 l) u$ ?9 u& Y" \- |' H
C:\>ping -l 65500 -t 192.168.1.21 8 S" V5 ]( h7 B- x
Pinging 192.168.1.21 with 65500 bytes of data:
0 M+ f: K0 z4 w6 A- ~ Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
' L8 x. [' k. C* J: l5 r Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ; c7 M6 a7 r* r3 |; P6 `
………………& c/ g- w- r4 e' q
D p7 V0 ?, ]/ A* Y5 s. N# L
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
; Q A4 d& u2 A- U) A* D5 h
5 ^1 d9 W8 J( |5 V -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 2 H- Z( c$ F# H4 f7 |* t( F
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
1 g; t: [9 R3 Y" d7 b& D0 P1 w -i TTL Time To Live. * K8 S4 p! R: A7 b2 u
指定TTL值在对方的系统里停留的时间。
v( D3 \$ }% C, H/ H% k9 B# b 此参数同样是帮助你检查网络运转情况的。
7 _7 ]% k6 r+ K$ a -v TOS Type Of Service. ) n: [- z: @7 A8 j) P) p5 `* \, V% g
将“服务类型”字段设置为 tos 指定的值。 2 e2 X/ i: G% [; r1 f# I- E
-r count Record route for count hops. ( q' F& E0 Q& Z( G5 O: m$ E2 `
在“记录路由”字段中记录传出和返回数据包的路由。 * v- i% m3 i. ^+ e5 `
* q( p) J5 ~6 h" n z 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
" v1 V x5 V3 I' n: ? C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
1 f% s: m6 \5 e7 D5 z w/ e7 k7 _3 b1 x" o* q2 c
Pinging 202.96.105.101 with 32 bytes of data:
& g( e% [! R' e2 B2 x( b4 E/ t* ?% \ Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
1 m; |' }: `) p5 K- H7 t" l Route: 202.107.208.187 -> * t4 e$ N" r4 g# u! w. }
202.107.210.214 ->
: ?( m/ ~) p/ H* X+ O 61.153.112.70 ->
K) \" ~; {1 X5 V/ C1 _, V8 M/ I( ]1 K; v 61.153.112.89 -> ) M# v1 A+ Y7 q
202.96.105.149 ->
. B# x* Z5 z! R% s' O( u8 t; B( w 202.96.105.97 -> 5 C) g3 d# I+ ]/ W A
202.96.105.101 ->
6 ?# j4 S. w( Q$ j8 ]3 U 202.96.105.150 ->
% h3 j3 c# V4 ^ 61.153.112.90
" [9 m6 E& s m5 \
9 o7 Z( q% T7 J& Z7 n; ` Ping statistics for 202.96.105.101: . K1 S! `# ]+ | M
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
6 I' [* l _( Q6 y Approximate round trip times in milli-seconds:
; {5 ]# `" s) d' I. q% |: R K% y" B Minimum = 10ms, Maximum = 10ms, Average = 10ms : g' W" A+ U3 s
+ v3 J' Y5 u- F8 {: D* P! y1 U) l
从上面我就可以知道从我的计算机到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这几个路由。
" u9 k8 \ [- u5 {( K! |# q6 ~
8 u. W- X P4 Q2 _, q2 Y5 c: w! T -s count Timestamp for count hops.
3 T& w/ i. \7 F. B; X 指定 count 指定的跃点数的时间戳。 5 |9 \2 }2 \: w# K
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 $ \* k: T" w9 M0 j! D
-j host-list Loose source route along host-list. - {. c3 Q( F* c. n* o, K9 K- y$ e# m: I
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
( N. T, P/ k0 D! c8 k
9 y2 g- T' y2 ?) h; | -k host-list Strict source route along host-list. ' U" u$ R6 L" A& T; ^* T
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 3 e: x/ Z5 C$ k' j
-w timeout Timeout in milliseconds to wait for each reply.
8 H1 _1 y! m, n6 U3 e0 f 指定超时间隔,单位为毫秒。
) z R6 R$ x- W$ C' q" a 此参数没有什么其他技巧。 9 L% q) L) D& u, B& W
% x2 Q0 q+ l" h: ` ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:/ ^4 _& o6 E6 s. y, U2 l
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] + h# G: f3 b( W5 E
"DefaultTTL"=dword:000000ff 7 [- o! Y7 s4 z6 Q/ a
255---FF " f% i5 X$ I3 I# K6 A
128---80
* {* x. z: \! G% f 64----40
: Q, m* ?- g+ N$ c# S* W 32----20 |
|