TA的每日心情 | 奋斗 昨天 10:29 |
---|
签到天数: 2394 天 [LV.Master]伴坛终老
|
ping命令使用技巧5 j0 `" t- b* y
--------------------------------------------------------------------------------
) Y# i, _1 m; q对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的
) B; W1 D k6 W8 w人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
! `+ w' q/ B3 o- V9 nping这个工具,也总结了一些小经验,现在和大家分享一下。
4 ]5 r# C; V+ D R6 H( V! \现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有 ' G3 N2 e4 z( h( W/ Q4 i9 o# G6 g- o
在安装了TCP/IP协议以后才可以使用:
( G8 H2 Y' h& n' u) y" Oping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s 4 X3 t, t( h) K& R) c [
count] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
( @; N5 x$ k, f5 r, ust
0 t, ]$ w! c9 h! n9 {* f# `( fOptions: 5 J0 N* j ]# y. I
-t Ping the specified host until stopped.To see statistics and continue - ty , [# Z5 Y; q, R" l2 r; r5 I0 |( A% ?
pe Control-Break;To stop - type Control-C.
5 T; P! _1 c3 E6 G+ y8 g不停的ping地方主机,直到你按下Control-C。 " A. @ _+ J# w+ k/ d
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
- P- L. a; _3 `" ^8 V-a Resolve addresses to hostnames. ' j' u/ [1 |- j6 D& @8 o
解析计算机NetBios名。 5 U! y+ |. e- |: P# F+ a3 ?6 Q8 }* Q
示例:C:\>ping -a 192.168.1.21 , Z" W- b+ k& |: H; z% R
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: : m4 P, k- U* w/ w+ O
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 + r% G- W1 ^ Q/ T( ^2 i2 W1 B
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ' i3 W$ G" ?/ }9 Z- k4 I D
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
: }" ~7 n2 o& C0 ~3 O* s& NReply from 192.168.1.21: bytes=32 time<10ms TTL=254
# h4 N0 d ~( O* V0 _" o7 @Ping statistics for 192.168.1.21: % P- k0 z$ e) p% z! p' {% d8 ?
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t $ T& S1 ^# ?, N
imes in 4 J4 N/ r" M5 B3 Y* o6 _
milli-seconds:
* U, ~$ U; C" kMinimum = 0ms, Maximum = 0ms, Average = 0ms
+ c) j2 s9 `+ l5 h( o从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 " e9 s; p' K! Z: N
-n count Number of echo requests to send. ( e4 S% [2 J3 Z! ~& s3 {" m6 J
发送count指定的Echo数据包数。 1 y* i) c. U' j' l& g2 N0 r
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 ( |7 G9 [' U* J! P# L
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快
6 e; P( f2 ^9 b9 k% \/ x4 M时间为多少,最慢时间为多少就可以通过以下获知: + ~) I5 Z p6 x$ s( t6 }" n
C:\>ping -n 50 202.103.96.68
3 O( g" h0 f* D% z" u% wPinging 202.103.96.68 with 32 bytes of data: % G, h. P( Z- m0 R" K
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 5 d. O$ h# E' ?. q% l
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
' N& L/ B8 n6 A0 lReply from 202.103.96.68: bytes=32 time=50ms TTL=241
# |+ d4 m1 L9 I# ARequest timed out. 8 ^1 ^3 f. H7 j9 G
……………… & X7 C4 u% o, N" A
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 4 G6 Z0 Y8 p' k+ g# t
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
, g5 l4 G+ ~, Q3 I3 wPing statistics for 202.103.96.68: # d( z& A/ L, g# ^/ j9 W2 g! b$ G
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
, X {# X7 R/ Y( Y3 L( p9 ytimes in
) `/ a: c0 m- K! {8 ]. p! Emilli-seconds: , z' B; }7 i7 W- G1 L" {) |4 `
Minimum = 40ms, Maximum = 51ms, Average = 46ms ( ]. P D8 }; n" E5 V- h! P
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中
- I g# |/ M) Q% g, w有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均 # N8 `* |; N3 K/ e) N. K
速度为46ms。 / s5 F, _, w5 q
-l size Send buffer size. 7 |/ }* k# V" f# B
定义echo数据包大小。 2 N2 X. E3 k% b9 z0 j" p. V
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大 + [8 L& q8 N1 I5 u
小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 4 T6 B8 U) u! g. E" s
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
! |* q5 H+ T) e0 L: \对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 3 E# k2 d' e5 n& Z3 R- X5 I0 k
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个 1 b% Q4 X; L0 c
参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个
1 i, W9 |6 D+ [! u带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
; y% |1 Y/ k4 O8 @否则后果自负) 5 d5 W2 Q0 O7 x
C:\>ping -l 65500 -t 192.168.1.21
2 h& E9 Z" s: JPinging 192.168.1.21 with 65500 bytes of data: # z( K* w& e% y5 }
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 q* L, o! Z8 ^' ^7 z6 h9 C
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
" \* i X) d+ I6 x) i' }……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,
; b7 K8 l8 m$ Z' P6 |如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 . I9 l9 i6 |3 @0 h- [7 [5 D0 T
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系 ' W. n: H5 {+ K7 [2 Z5 e% g
统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
( \* E6 a- Y! n, v3 d7 t6 H完全停止,由此可见威力非同小可。 6 A; s6 P) F) v- k
-f Set Don't Fragment flag in packet.
: {1 v0 @# z- r在数据包中发送“不要分段”标志。
/ Q# C8 a4 T/ `在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会 9 H8 v) H0 [# |2 U: M7 ^9 \
再分段处理。 3 Z9 H. [9 e; b+ B7 e# p
-i TTL Time To Live. 2 P4 a. _+ A7 R* g- K$ p( a0 M; `
指定TTL值在对方的系统里停留的时间。
7 `- j1 }' X6 y2 n6 c1 f0 H. s此参数同样是帮助你检查网络运转情况的。
$ H; W; t, x: V5 m5 }-v TOS Type Of Service.
! d) G+ z- G$ W# ~9 O6 L3 J将“服务类型”字段设置为 tos 指定的值。 ) K E2 b* J5 }( q- h( w, Y& v
-r count Record route for count hops.
6 b* m, X& Y* y; S. D在“记录路由”字段中记录传出和返回数据包的路由。 , A6 U6 V$ H; e/ H; h. N9 e, z. Q
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 * \4 J2 w4 w4 Z4 F
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说 $ k( @* I+ S% F) U
你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 # ~1 f; D1 e$ _, h. Y2 n
给大家讲解。以下为示例:
9 z# }7 J, Y- u0 C: I8 _! U% LC:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) ( D9 C, l# B2 c# z( n# g9 ]: w
Pinging 202.96.105.101 with 32 bytes of data: " ?, W4 i) ~4 R8 m
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 & Z8 Y" R6 ]- l8 z; Z/ A$ X0 {9 }) R* _
Route: 202.107.208.187 -> : E' p6 b% L7 U! ]
202.107.210.214 ->
, J( D* o1 u W! x% P5 I6 b61.153.112.70 -> 2 n7 R% G& i& G: x1 E+ ?8 [
61.153.112.89 ->
; L5 V" C: J: q4 S- j202.96.105.149 ->
) U& g% F. c$ [2 R. A+ |6 w( }202.96.105.97 -> 7 x3 ~( L! _. Y4 v2 \9 b# X/ B4 N) l4 e
202.96.105.101 ->
8 V. u$ o! v( t& C: z; l/ w) J202.96.105.150 ->
5 Z: T8 {7 ?$ z. b3 J61.153.112.90
+ w( a' `$ K) [; ePing statistics for 202.96.105.101:
% P. s# ^- d! B* m" d+ sPackets: Sent = 1, Received = 1, Lost = 0 (0% loss),
( M/ M m& A0 z& B9 b1 gApproximate round trip times in milli-seconds: 6 u3 ^; y8 p9 _% E; x' p
Minimum = 10ms, Maximum = 10ms, Average = 10ms
( t4 Y& \4 n6 U9 I, S从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20
0 Q; Y; B9 F$ T8 D3 M" a! m2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105. + L% D1 D! ^$ I2 P/ [
97这几个路由。
. I8 n8 @6 E3 H) V: O6 S4 U-s count Timestamp for count hops. " v! x- O X; Q* ]5 ~# B
指定 count 指定的跃点数的时间戳。
+ `5 w5 h) J' K3 ~6 G此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
\( y! N0 v& N/ Z7 F% M" V-j host-list Loose source route along host-list.
2 A% ]# W; D; g. ]; V1 w9 H; p利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔( , R3 e7 Y( h1 _9 \. ]% d5 N7 o2 ^
路由稀疏源)IP 允许的最大数量为 9。
: ^6 E& H7 c9 {; R" S, p; Z& C-k host-list Strict source route along host-list.
8 M2 D m+ i% F利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( : _, ^3 j+ Y7 Q( X
路由严格源)IP 允许的最大数量为 9。 }. s- |: q2 j9 }
-w timeout Timeout in milliseconds to wait for each reply. 0 K! F' V: P/ K* c/ e6 a
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 8 Z s+ B7 F1 _4 |, A
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
0 w U0 h( m X [# V粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
+ w6 J: H$ ~6 V( Nws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 ( ^% p! Q0 U( X% S$ m
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 9 v* w' A# ?6 q7 y
改注册表以下键值实现: 5 ^: T. B7 M9 m
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
6 y8 Y2 L/ t' s( q1 Z3 S0 p I8 ^
: {! D/ X4 d* c* S0 i"DefaultTTL"=dword:000000ff
: B* c) I" s' w! ~255---FF - L+ w1 H. [9 {2 `
128---80 + s6 a; x' |: O
64----40
8 n) k. R1 a6 d" V& U, |
, U! Q' A1 _8 f
" B8 F$ Z# s, V0 Q3 N" r E7 U/ G( J) J1 X! }, A$ L; ~
|
|