TA的每日心情 | 擦汗 7 天前 |
---|
签到天数: 2402 天 [LV.Master]伴坛终老
|
ping命令使用技巧
% f/ T; v7 _; g--------------------------------------------------------------------------------
! E! e4 K0 c* ^1 ]7 G对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 6 E$ U1 o% ^' F& o' k+ x
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
% F: x' ^" t1 oping这个工具,也总结了一些小经验,现在和大家分享一下。 ) a% L. @$ T& y1 w3 u1 `& C" I
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有 % H2 Q) u2 f) K* }8 b
在安装了TCP/IP协议以后才可以使用:
( l! ^3 Y2 w x" j3 I7 F, Bping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s 1 q# f- B/ }0 J1 n, b6 `0 ?
count] [-j computer-list] | [-k computer-list] [-w timeout] destination-li . `# ` J" Q0 A3 r+ A' O. ^0 V
st $ w! V6 l4 |3 z$ {( X0 b
Options:
- b4 `3 W+ B5 A-t Ping the specified host until stopped.To see statistics and continue - ty % i( ]& I) O# C* h8 F5 i
pe Control-Break;To stop - type Control-C. $ }2 Z! @) N6 F
不停的ping地方主机,直到你按下Control-C。
" E0 T: {! x% y& f" b此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 7 m; E( y5 r7 U/ ^ u1 b5 r K
-a Resolve addresses to hostnames.
$ p3 W! ^1 d3 L+ x( \解析计算机NetBios名。
: F0 b, J& u2 O. T8 s示例:C:\>ping -a 192.168.1.21 3 y: k$ f" o5 X/ F' H3 f
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ) G V7 x( s1 t" e Q. k% K
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
# C, g' a" W# u" ^' C. tReply from 192.168.1.21: bytes=32 time<10ms TTL=254 . [) q. i; Z* P# {
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
. h7 l6 h& K$ T% W$ [6 p; U" wReply from 192.168.1.21: bytes=32 time<10ms TTL=254
3 c, ]& ` L4 W2 ?Ping statistics for 192.168.1.21: 8 {$ m; C+ w+ J8 R7 C
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t
3 b0 R+ _$ y/ ^) w1 D9 @+ jimes in 2 o- M6 b( G8 |" k- n
milli-seconds: 4 K( k2 l9 U! e2 j
Minimum = 0ms, Maximum = 0ms, Average = 0ms
7 n8 i8 `) z+ Y8 c+ q4 h从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 & o. k; ~# I8 [& _
-n count Number of echo requests to send. 1 c# q2 U. ~! c& \+ ^
发送count指定的Echo数据包数。 ) D) S: [( X: U, M7 A
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 5 {5 T& f. Y4 B
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快
/ t0 L' D7 q$ K8 `时间为多少,最慢时间为多少就可以通过以下获知:
( I, b- o6 o& DC:\>ping -n 50 202.103.96.68 / A G2 H t8 M- |1 M. x
Pinging 202.103.96.68 with 32 bytes of data: * z6 e5 C* ~) m$ e3 D5 @8 G8 m
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 @/ W/ G" C2 h2 i+ D/ D4 A
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ; O1 ]+ ~0 S+ |! N: m
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 9 u2 T5 j0 t7 b m8 u+ B }$ p
Request timed out. - [/ N4 g9 X+ j/ X( J. R% \
……………… % I; g6 Z. d' d+ v2 i( ?+ i
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 3 D( \+ y1 N/ \. h8 ^& I: o. n
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
1 J& o5 V6 p$ Z) w! f: \% p7 O$ lPing statistics for 202.103.96.68:
6 Y: ?& W7 U2 D0 ^$ FPackets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
0 k; L6 T! H2 @# H1 O0 xtimes in : E6 V& L9 n; \1 |2 m& N3 ?
milli-seconds:
( V4 K R# W0 R" U6 m3 [Minimum = 40ms, Maximum = 51ms, Average = 46ms
2 D6 O$ \! L: I% o+ l从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 " w4 M& R3 Z& a
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均 4 G7 E9 c3 T" [4 q7 r! @6 \; I
速度为46ms。 # D5 y" ^0 W5 _1 D* v/ n& O+ a* H
-l size Send buffer size.
' p, ? `6 f+ }! w3 T定义echo数据包大小。
' W+ L% i& d1 Z6 K c) ~, r! R在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
* y' X( i( \, p0 p小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 & b5 P1 s9 m# X' n. s* l& L
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向 8 I7 j: J9 Y4 z/ T. h2 E& J3 j1 ]
对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解
3 ?! y7 v; |+ p% p9 b决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
# K. t2 P9 C: u参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个
9 `$ k! j9 Q# M- i1 Z带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
6 x" d* S8 q5 h3 P- Q& B1 z否则后果自负) : `+ q: G5 P9 h3 y5 r, u
C:\>ping -l 65500 -t 192.168.1.21
# c9 i" z; J# C& Q4 b: [9 yPinging 192.168.1.21 with 65500 bytes of data: ' V. V% ^# y# _) H, m! k3 X6 t
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
' _( X' ]9 h+ zReply from 192.168.1.21: bytes=65500 time<10ms TTL=254 , J$ y/ S0 r% Y4 B8 x( e: n" [
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,
- i& a1 d! m' l& G2 [& i如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 ~8 ^# S, A7 A2 m4 x
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
7 q; _' B# f# ^' k+ @! ]; J" Q l统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
. `/ w; Q" ?8 K8 m* u完全停止,由此可见威力非同小可。
' `! w3 y" w h0 X+ }4 O+ K-f Set Don't Fragment flag in packet.
2 Q o+ }3 J% F4 L. N' Q在数据包中发送“不要分段”标志。
3 n1 x4 y. n0 j \- ~3 x在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会 , m$ M( C U! F: a: n
再分段处理。
+ r0 R' c2 K) h" w) E j1 Q* |-i TTL Time To Live. " e: u0 b" _$ ^9 ^
指定TTL值在对方的系统里停留的时间。 ) f5 @6 l4 @6 a/ [
此参数同样是帮助你检查网络运转情况的。
* {/ C; B0 i# w8 x-v TOS Type Of Service. 1 w$ ~7 o# H. `: i+ y0 y
将“服务类型”字段设置为 tos 指定的值。
, {, ?; k8 `- Y. x D& t-r count Record route for count hops. " ]* O, q6 h' U2 \
在“记录路由”字段中记录传出和返回数据包的路由。
g4 L# D! U2 P- r5 y& W* D在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 . e$ v' D: b, L; w: s
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说 # ]: d8 o! Z6 U1 s7 b4 j! ^
你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 / T1 H; d3 e J( e
给大家讲解。以下为示例:
8 U& Y1 K' b$ v$ W% y9 fC:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) + V- F- F. S& W3 `/ W" o& A3 A
Pinging 202.96.105.101 with 32 bytes of data:
7 P- p! l# V7 M" Q6 |4 n& _2 M8 F7 zReply from 202.96.105.101: bytes=32 time=10ms TTL=249 4 S3 t3 ~& q3 N' W$ g, m2 p9 j
Route: 202.107.208.187 ->
& J/ M6 D9 M; M202.107.210.214 -> : k" o7 Z8 n; L. m
61.153.112.70 -> L# E- u" o9 K n3 v W4 C
61.153.112.89 ->
, N- B. c9 i3 A4 a1 K# p. S$ m$ t202.96.105.149 ->
1 Y, s; e- W" j2 R6 e+ V) t) J3 x/ {202.96.105.97 ->
5 E. h: W ?% j202.96.105.101 -> ( M! ^" ]* q* I9 F8 E+ F% Z
202.96.105.150 ->
0 _) h0 \( N+ \0 o# E61.153.112.90
R ^/ W- M0 x" IPing statistics for 202.96.105.101: " N/ C H0 q; j% w. t
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), ! Q$ H' ~) R1 H, H* F; V) \; h
Approximate round trip times in milli-seconds: # G8 r) j8 u! d* q& L6 u( M0 u* r: O
Minimum = 10ms, Maximum = 10ms, Average = 10ms 3 K3 a7 z7 r) Y# k
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20
& i6 Y2 W% w3 h& Z& S8 ]# T2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
1 s3 L, y! O W8 }, B+ [4 L1 X97这几个路由。 - }( m: s; z Y1 M
-s count Timestamp for count hops.
8 Q; D D2 ?. Q& P0 I* D8 E指定 count 指定的跃点数的时间戳。
( |" C+ Y3 N2 `/ V( K8 W9 W: L此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
& |& O r3 `( T) E; O/ B. Q-j host-list Loose source route along host-list. , q+ C8 i: q+ M: v1 G" N
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔( + k$ Z! W' q: J. u, ]3 o# V
路由稀疏源)IP 允许的最大数量为 9。
& _* W& Z3 J: T-k host-list Strict source route along host-list. 5 _6 ~0 a2 \8 L% ]" l6 ~
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(
7 F4 c5 ~+ S! z F* H2 D0 Y' C' U/ ]路由严格源)IP 允许的最大数量为 9。 & ~( f* e/ v Y1 K) n7 i3 r
-w timeout Timeout in milliseconds to wait for each reply.
! |( v6 z" b5 s" ^/ m; S指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。
/ Z% S* B3 a4 Q# p8 |( `0 oping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
+ _+ |: @& j: [6 N/ U粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo : A% g1 {; j, P5 [
ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240
$ b ~: q' e# [* U/ h6 `-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修
( c" g0 f& W9 j9 k0 _改注册表以下键值实现:
& x7 U5 K. I$ M. Q) [[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
4 Y2 ]( J) O& N
# ]% ~, N0 Z& E4 E% ]: T7 D"DefaultTTL"=dword:000000ff
4 [2 D& y7 \* z$ a0 c9 I# [255---FF 2 X) O p. Y1 E) a
128---80 ( O: n7 y8 l$ m# m# y# a$ a$ ^
64----40 4 O% T# A. x- y! X/ t6 ~; Y
8 d4 l7 n0 E& Z
) o& x+ W$ M3 C9 r6 U7 A5 t4 \) | Z0 Y# K9 ?2 \* k
|
|