TA的每日心情 | 奋斗 昨天 10:07 |
---|
签到天数: 2385 天 [LV.Master]伴坛终老
|
ping命令使用技巧
* T4 }& `4 S8 c$ H% u-------------------------------------------------------------------------------- 7 ~7 K3 C$ G. z, U
对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 3 @! l' X: Q" o% [3 o
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
/ C* v/ |! }' k3 Q3 G1 F& Oping这个工具,也总结了一些小经验,现在和大家分享一下。
9 N, u: h" [2 k现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有 0 d! j$ m5 u' m( I" x6 o" v5 V
在安装了TCP/IP协议以后才可以使用:
% I! v1 ]/ `8 P5 l; T) T8 w& xping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
0 D. i: ?' C' o* f- z. D* Scount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
- I3 b: [6 R5 Z9 d6 ast
a6 o& A: e4 XOptions:
7 r2 Y7 l1 U' s-t Ping the specified host until stopped.To see statistics and continue - ty ( W l. N: z$ D
pe Control-Break;To stop - type Control-C. 2 I) K' ^" Y" x: N9 h x
不停的ping地方主机,直到你按下Control-C。
0 n: ` o" _, K5 k" x此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
6 X# r+ G- ~: Q6 E6 t-a Resolve addresses to hostnames.
* z0 P( y' v( I. v解析计算机NetBios名。
' F/ _9 o; d1 @: }6 e示例:C:\>ping -a 192.168.1.21 : C: O& _! g& J8 e5 y/ ~. G
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
, `5 G. W& A% B6 bReply from 192.168.1.21: bytes=32 time<10ms TTL=254 4 r0 j! T, l \9 o) ?- @0 k
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
5 q2 z6 k* W. N+ }Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
' J8 ?( `0 J/ d" e) j$ yReply from 192.168.1.21: bytes=32 time<10ms TTL=254 ! Q2 `+ {( m' A7 k
Ping statistics for 192.168.1.21:
) O. i4 x& Y0 @% pPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t
& _; m2 K: f3 F# A0 Times in - {) d5 n2 u+ Q4 C/ J, F
milli-seconds:
% r: g9 J) C% sMinimum = 0ms, Maximum = 0ms, Average = 0ms
$ y' q j% Z* ^/ J3 M* c: v从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
# a. K. z: z! u, O! f-n count Number of echo requests to send.
- z5 m, m: m! P; C" ~! F( N9 a发送count指定的Echo数据包数。 ) b" C3 j) ^* X& g
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 & o* z0 W; E+ O" J5 W. }9 i" h
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快
- P" P7 F; c3 w9 h- G i时间为多少,最慢时间为多少就可以通过以下获知:
. y% b1 k/ z. d0 s) D. }! MC:\>ping -n 50 202.103.96.68
+ F7 ?& G; d# u, W" W2 _Pinging 202.103.96.68 with 32 bytes of data: 8 T; Y2 n2 S# [% `
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
V% ~2 G/ ^. {0 z2 d W% {+ H8 \Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 H0 f8 ^0 S- L3 V$ T) ^
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 . f1 p* c0 x8 e8 ?& E
Request timed out.
3 N: X5 w& h0 C/ R4 L2 Z……………… ! C' K$ }2 R* }# U& s# S+ D, s+ B
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ; A: p, r, m4 M& D! `
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
' B, x5 d' {' W1 @3 w3 O/ yPing statistics for 202.103.96.68: - ?7 g7 N6 H: Z+ m- K
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip ) x7 Y x# Q/ }& J' v
times in
: w7 u/ x, Y9 Y6 Z& |milli-seconds: 3 N& ]5 Z9 @4 {4 }2 R! h" y1 G( L2 Y
Minimum = 40ms, Maximum = 51ms, Average = 46ms + n- n# [7 T% P' T5 \1 W
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中
3 I8 x! c# M: X! ^, {有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
; a. d# j7 \. [5 n7 Y速度为46ms。 7 U/ O6 {$ o$ K$ c
-l size Send buffer size.
$ K, {, U9 f) P5 K' v6 Y定义echo数据包大小。 . \4 L2 M/ x: `' N
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
4 A# }0 r3 a& \% l" \小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 / z/ B1 M2 e3 `" h' @
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向 4 h& q$ R7 K3 S
对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 ! o8 X# Q& w5 I5 z3 Z% }
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
% v4 b7 p; B$ Q- p! L0 R参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个
, R/ t# w# e- E3 T4 u带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上, 6 e) I* q; S4 U1 N! ]: a
否则后果自负)
5 i& m$ v* b$ j; Y& v B/ PC:\>ping -l 65500 -t 192.168.1.21
4 Z/ M/ p6 |. m' H4 B: R: KPinging 192.168.1.21 with 65500 bytes of data: 4 }8 V2 Z, B( M! h# i
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ( [7 }* ], c) G' C& C, S3 ]
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
2 _$ P, E1 X( \……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, ! H* Z* Q/ |! s: C: m' S6 J# I
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全
8 d0 I/ S8 j# l1 Q4 L* e d瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系 6 T% t( j4 S1 J1 w
统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务 ' ]/ w( I4 ^# w, `; C' u7 W. |9 v
完全停止,由此可见威力非同小可。 ! {7 ?0 r- @. J; a, Q
-f Set Don't Fragment flag in packet.
; a8 I) y$ N2 ?4 N) v& N在数据包中发送“不要分段”标志。 * o: J2 b# F ?
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
/ c4 [( f% ^5 _# v8 z5 u" `$ _* n8 `) R再分段处理。 : e h' f' K+ q b* y u! }& n9 u: r
-i TTL Time To Live. 7 Z/ X0 r5 f( P4 v0 L: L k
指定TTL值在对方的系统里停留的时间。
! V3 L0 O! D, B; Y3 D4 F此参数同样是帮助你检查网络运转情况的。 6 c6 e% |( m' \3 C
-v TOS Type Of Service. 0 e4 Y& P$ K9 @) n6 ?
将“服务类型”字段设置为 tos 指定的值。 2 r& a- u, J- G* e4 ^; I" x
-r count Record route for count hops. , ?& k0 q2 a4 b0 l% {2 Y
在“记录路由”字段中记录传出和返回数据包的路由。 8 d7 V9 _# b; K6 J N4 `
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 * y) c5 t7 q7 h- ~7 [9 ^: w
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说 4 q+ y: ^: D( }) x
你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 : r& y- S7 X5 g! Z2 i4 Y, w) v
给大家讲解。以下为示例:
% G( Y3 j' [5 T" l1 ^9 |: T) rC:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
: y- w" R6 z/ E5 d. ?Pinging 202.96.105.101 with 32 bytes of data:
, {$ n+ h& D3 N; G, Y/ a% i4 LReply from 202.96.105.101: bytes=32 time=10ms TTL=249 ) G& F5 B$ |, I
Route: 202.107.208.187 ->
; Z" L* m0 P M& I: E202.107.210.214 -> - q; ~( ~$ _& W- s0 T6 k
61.153.112.70 -> + @! v& V6 f' S9 V/ ]
61.153.112.89 ->
$ ~* M+ @ K8 T6 V0 L5 s202.96.105.149 ->
& w% s% {" {, |/ }/ N202.96.105.97 ->
6 N; [2 O" C1 l t+ P202.96.105.101 -> # G% ^3 B) H: q; @, Q H# u4 c5 O
202.96.105.150 ->
4 N6 C5 C+ V) ?0 R( i' l61.153.112.90
. ^ y- U% ~% E0 {1 sPing statistics for 202.96.105.101:
8 p9 t i( c2 p& wPackets: Sent = 1, Received = 1, Lost = 0 (0% loss),
" M/ r+ z0 t3 [$ @- sApproximate round trip times in milli-seconds: 4 V/ D3 }% R! D) j
Minimum = 10ms, Maximum = 10ms, Average = 10ms
3 \) P# E7 P7 ~. d. n7 l4 X' D从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 * e" u4 H" [6 y8 w W& Y. k
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
7 F, @( }! T9 G# c# R97这几个路由。
' b0 h$ w1 E) A, Y-s count Timestamp for count hops.
+ b7 h; C' u# g7 }- @; ]" g. G指定 count 指定的跃点数的时间戳。
# F) W- }8 v* F4 F9 w: z此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 * ?! h/ D9 W# ?; w: s
-j host-list Loose source route along host-list. : D/ W) o8 L9 |" ]1 _
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
8 k9 `" e0 I9 o* \7 u/ F b. c; [路由稀疏源)IP 允许的最大数量为 9。
0 u6 c1 W/ H% \5 R0 u4 p8 D-k host-list Strict source route along host-list.
& t$ D* a3 W% s3 M# h利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(
8 _; @ ?4 u. r% P路由严格源)IP 允许的最大数量为 9。
3 {, _( p1 w8 U8 d- `-w timeout Timeout in milliseconds to wait for each reply. 9 s; U( u. S3 e
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 ) C% C! w+ A- Q) j0 Y7 ?
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小, 1 B$ U4 D) F1 g" I
粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
. Q3 X" d4 s) O5 ^$ c! Rws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 7 _7 d1 t+ Y! J+ D1 [3 `
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修
9 l$ ~' q0 M$ x$ u" u, k1 b+ w改注册表以下键值实现: 0 L4 a" c) t6 ^/ x' s/ I
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] F; y* K3 m9 n* m# H; Q
2 m2 m6 p: |7 A$ K"DefaultTTL"=dword:000000ff
( a) w: w+ s; v. M$ N2 [255---FF 6 \" w8 o" r9 y% ~1 O& m! \
128---80
/ i1 D7 T2 K! r+ ~: V! v 64----40
! j8 f3 x& R$ H& B" d1 |3 L0 S5 m* o& O/ ]
1 P! b( l. n: ^6 @4 H
" Z0 Y R, n' i9 F
|
|