TA的每日心情 | 怒 半小时前 |
---|
签到天数: 2261 天 [LV.Master]伴坛终老
|
ping命令使用技巧
: R% {" A- h0 X4 w4 x7 x3 z--------------------------------------------------------------------------------
~2 u& w! F3 u# A对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的
( i( Y1 U, H, j1 @人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用 8 `, U: f6 m2 t9 W( G% @
ping这个工具,也总结了一些小经验,现在和大家分享一下。
) w! M# S: |) ?5 a) O现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
1 j8 X0 q# @3 A" X) ]0 Q在安装了TCP/IP协议以后才可以使用:
6 }6 H! b' r4 G1 x3 fping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
6 P# F) s8 j% m- Tcount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li 5 v9 {$ Z6 m# ^ g% ]
st
7 F2 b( N8 J$ v% @Options: 2 \; m i! e0 @! b
-t Ping the specified host until stopped.To see statistics and continue - ty 3 F7 b. E8 T4 ~% I, j" m
pe Control-Break;To stop - type Control-C.
, \3 w) u. U- v0 ^不停的ping地方主机,直到你按下Control-C。
% C' [. @% F s3 I5 ~' g2 w" _此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 5 \/ h: J8 U/ s) D& q
-a Resolve addresses to hostnames.
* P5 n! N2 x( t( h9 _解析计算机NetBios名。
! O ?$ H- R9 }1 |示例:C:\>ping -a 192.168.1.21
6 o5 Y$ `7 v% g$ l3 s( C# dPinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
6 z( h0 u+ j& j; M" GReply from 192.168.1.21: bytes=32 time<10ms TTL=254 7 F, @$ Y { u \
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 8 X) u- S' @7 R8 Z, T9 ?7 d# P
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
* a1 l5 m) \" c' m" U) E: [ v, xReply from 192.168.1.21: bytes=32 time<10ms TTL=254
1 z, B' ]) w- l0 r7 n6 OPing statistics for 192.168.1.21:
; I% a. \4 n5 \: E2 I5 jPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t 2 X' H3 n' `$ X! l/ o0 H* y
imes in 6 H! {& a+ p. K! W2 H3 n3 _
milli-seconds:
3 @) M5 n4 R s0 i3 A$ H$ T( c! LMinimum = 0ms, Maximum = 0ms, Average = 0ms 8 }- t- T# x2 p1 v
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 4 }+ P7 D, _6 \8 I9 \ W9 [
-n count Number of echo requests to send.
) h: i4 `/ R; C6 _发送count指定的Echo数据包数。 8 H* K A5 ^6 D8 \' b. L* a
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 4 e% |' G7 j2 i+ {( ~
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 0 O0 E* @% s+ u) |$ h2 F
时间为多少,最慢时间为多少就可以通过以下获知:
- p+ i, K& h5 Y5 _9 \C:\>ping -n 50 202.103.96.68 8 P0 S1 z2 G# D% W2 s0 S$ b
Pinging 202.103.96.68 with 32 bytes of data:
, n: V/ b2 c" vReply from 202.103.96.68: bytes=32 time=50ms TTL=241 8 P; w: ^( s; R9 v
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
/ J4 }1 |& i+ O3 p! C6 rReply from 202.103.96.68: bytes=32 time=50ms TTL=241
: J/ c- f9 e7 w" gRequest timed out.
2 B# K3 i) S6 R- Z……………… - z2 \4 d1 } p- Y
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
# M l+ f& p* l" V" \Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 # n: E$ _7 m' z r
Ping statistics for 202.103.96.68:
9 }; |4 Y. X4 `: ?3 y$ D! J6 oPackets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip # z/ ~( E/ l& W& F8 M
times in
# A( H: |) s% Umilli-seconds:
# l0 `' h* T4 B6 b& YMinimum = 40ms, Maximum = 51ms, Average = 46ms
$ e9 E M* \, {从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 9 A5 o9 D* e. Q; h5 u6 d3 V
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
' t5 m6 `$ C) O9 e& m速度为46ms。
) H8 l& H w4 u' |-l size Send buffer size. 8 Z/ L3 o0 H) G& n' T+ M# s D
定义echo数据包大小。
. O) c# P8 Z- }7 a+ Q在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
& @9 o6 ]* Z! N( D小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到
; F0 E* z0 @1 j; Y o( i( \; ^( ^ P% E% ^65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
+ i! P% x+ _! c: [* J对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解
5 b$ ^* I7 B0 j$ n3 P决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个 $ {/ ?' s) l) f# w# u) }9 F) i
参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 / o3 q' i( B4 p& \+ c8 [* G
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,
: u! C( W# P# _" n9 I: v- K6 `否则后果自负)
3 J$ O7 U6 m# A5 z mC:\>ping -l 65500 -t 192.168.1.21 - }+ r- p& F) V0 o( B4 \
Pinging 192.168.1.21 with 65500 bytes of data:
$ l8 m3 t1 E! D! m, v! ~Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
; t& D6 W( U, {" {Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 6 u! P+ M2 P; t0 S5 h
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, - ~+ F6 }9 Y* T; @0 x0 v9 e# \
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全
% U$ g; L( w) ?瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
- X; M% b5 R5 O4 O3 @; \5 Y& f* D9 I统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
2 |1 S8 p5 P9 P5 ?完全停止,由此可见威力非同小可。 $ v* m7 B1 ~" o& B
-f Set Don't Fragment flag in packet. : O. V p# w$ @5 a' P6 R& C
在数据包中发送“不要分段”标志。
% m& b0 e" W1 X在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
) F, T/ q: i0 [+ x, ?再分段处理。 3 l( L( z6 \- p4 \: c- w
-i TTL Time To Live. " b' `* r7 y8 ~
指定TTL值在对方的系统里停留的时间。
6 S0 C# x! a0 T1 r# b: M" v此参数同样是帮助你检查网络运转情况的。 3 Z$ _. E% C x
-v TOS Type Of Service. 7 |! ^& T" y9 Q4 B
将“服务类型”字段设置为 tos 指定的值。
0 t/ B; C1 w1 z1 B) `1 \-r count Record route for count hops.
0 A O6 g* [1 c: D8 [! V在“记录路由”字段中记录传出和返回数据包的路由。 2 g; R6 c, E8 E1 L
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路
9 \# ?% y; N; B, |! v- j由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说 , v1 b/ _$ g; l. Q7 c7 d
你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中
3 e7 M# y; _6 F3 Z& O给大家讲解。以下为示例:
( S% u- n) ~; h4 T* ^C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) # a3 d: \4 I7 H+ a. K8 I5 W9 L
Pinging 202.96.105.101 with 32 bytes of data: 6 Q* l& e) h6 X# E% z* X4 M
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
* W" f: Z* `3 a" o g6 GRoute: 202.107.208.187 -> 9 A4 d7 A0 V9 z; H% e w5 Z6 H
202.107.210.214 -> 9 n3 ~4 N; c2 |; C
61.153.112.70 ->
! p$ W6 |) k1 A2 z, _. i# Z61.153.112.89 -> ' j; `4 k$ ?$ b2 Q6 B7 t1 I, w
202.96.105.149 -> p* g8 I# N3 P o+ |/ R
202.96.105.97 -> $ F& o: w- @+ f7 t; B6 M7 t
202.96.105.101 ->
* S2 |, g8 Z/ k) g/ E# j202.96.105.150 ->
! R `1 @+ l: O% f. @& q# w61.153.112.90 . k$ N5 t5 N* [6 i) g
Ping statistics for 202.96.105.101: 1 ~ z, E* V8 h" J
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
1 j% ]* ~, B. n8 X# o7 [0 ^6 S9 \Approximate round trip times in milli-seconds: 0 \! a$ F9 {1 ^4 M2 ?1 C
Minimum = 10ms, Maximum = 10ms, Average = 10ms
, h: d* d) x. L/ \ T从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20
$ j$ e# \- n5 G- J% X# ~2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105. 4 c5 M {: R8 x+ U0 v$ R0 R
97这几个路由。 ' c' J; `% S8 W6 l8 S9 d6 U
-s count Timestamp for count hops.
: I% T8 z P. Y) W) F- X指定 count 指定的跃点数的时间戳。
# ~9 _$ J$ g0 S6 x+ q h) T此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 R/ q, z4 `/ d" N( W2 I. }
-j host-list Loose source route along host-list. ! V# Z J* w$ `" W
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
2 q3 R% }2 O5 F q路由稀疏源)IP 允许的最大数量为 9。
S5 e8 @, `: e+ l0 C# C-k host-list Strict source route along host-list. 8 h m' O+ A1 _7 S- B
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( : ^" G1 G( x( K( |
路由严格源)IP 允许的最大数量为 9。
+ A/ R9 L/ n+ u-w timeout Timeout in milliseconds to wait for each reply.
& L- v) F7 |$ y7 P( l W: j |% i指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 $ r. O3 J; |( ~5 r6 o$ t& z
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小, : m) P5 `& u* a4 b
粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
1 s7 Z$ v1 L: b' lws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 + q! ?6 B* I9 {* N+ |4 B+ C2 @
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 % k$ W4 T5 k3 J) ~4 j- E
改注册表以下键值实现: , f1 i0 t O2 r& |( L7 L, @
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
. r6 R2 P$ Y% S; d7 }) w9 f! x7 k/ F ]/ y
"DefaultTTL"=dword:000000ff 7 f( n3 a& m7 q" }& s- O% G6 I Y
255---FF
1 o6 m* O$ v( Y/ N: E+ O! v) L" q 128---80
9 {0 |! ~1 [2 n# b 64----40 5 {- T, _6 B" [& ]% |% {6 g5 d
8 r5 c2 J! l4 y. b, c" R/ S& M
. s. m7 i: }3 x" {$ @
' n! D3 I \" l+ W
|
|