TA的每日心情 | 奋斗 昨天 14:14 |
---|
签到天数: 2401 天 [LV.Master]伴坛终老
|
ping命令使用技巧' } G$ K% A$ A( P8 U: I
-------------------------------------------------------------------------------- 2 R X8 R' R- N5 D9 k
对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的 - @0 W& V4 z: [' w$ A6 Q# ?
人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
8 }3 Z/ d+ u2 A8 j1 dping这个工具,也总结了一些小经验,现在和大家分享一下。
! z2 H. l7 K+ L) o现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有
3 n4 Q9 M4 D8 S- W0 `: Q4 M在安装了TCP/IP协议以后才可以使用:
3 o' R8 u K( Tping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s 1 ]# I) w- c9 x
count] [-j computer-list] | [-k computer-list] [-w timeout] destination-li
8 s/ Q% q5 {. q! e* W- ist 6 P6 u, y- B5 K
Options: : h' ]& e+ `: h' A
-t Ping the specified host until stopped.To see statistics and continue - ty - i; _( h/ f" F) Z6 o. m1 c" [/ D1 m/ g
pe Control-Break;To stop - type Control-C.
w6 ]1 v" S! s6 `9 G8 s, R不停的ping地方主机,直到你按下Control-C。 . J8 f* A. d% J$ C7 B% t' R7 p
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
* e, z$ l$ c- {/ d7 `1 C-a Resolve addresses to hostnames. 0 N* C+ i8 p0 G. H
解析计算机NetBios名。 8 s/ a8 _7 z5 e5 b. S# H) m
示例:C:\>ping -a 192.168.1.21 & Q- y; O+ }' ~+ a4 K
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
" P+ C7 H& { I- _* n( e8 ]Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
8 O7 P8 K* o$ I2 A2 S3 ~; xReply from 192.168.1.21: bytes=32 time<10ms TTL=254
) Z7 s' I' O8 h5 N, F! gReply from 192.168.1.21: bytes=32 time<10ms TTL=254
; y0 Z1 p# g# L% i+ c: ^ UReply from 192.168.1.21: bytes=32 time<10ms TTL=254 / Q0 j4 ?& p# O* Z
Ping statistics for 192.168.1.21: ! S/ Z8 J7 Y( C7 _9 T- |
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t 2 n9 Y/ x; s: E9 U3 F" _% E: b& }' K
imes in
' U) K! G6 k" `4 h' B6 r) Cmilli-seconds:
! |' `) J8 L* f6 i( t/ `Minimum = 0ms, Maximum = 0ms, Average = 0ms 4 e/ N, L. h" B: q9 c( X
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 1 Z7 Z7 {4 e( e. S
-n count Number of echo requests to send. % n$ C8 _4 d+ m8 c5 }4 r' D { ^1 b
发送count指定的Echo数据包数。
?8 g( N8 m$ Q在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对
* T( n4 Z# f: K衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快
- J, W6 Y( j X! c2 \1 Y( K时间为多少,最慢时间为多少就可以通过以下获知: $ |3 ^6 A' d+ m6 I# j4 A6 O7 N
C:\>ping -n 50 202.103.96.68 ' W! v7 e9 V5 A
Pinging 202.103.96.68 with 32 bytes of data:
' ^$ A9 s& e" f, G4 ^Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 @/ v3 d0 M: y: T6 M, ~" u& z' o/ YReply from 202.103.96.68: bytes=32 time=50ms TTL=241 2 Y T" }" z! j Y4 M0 p8 Y
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
6 T/ u) H/ m$ tRequest timed out. $ X3 m! d1 T: m2 {3 K# \
………………
( _0 U3 z: Q3 P3 v; aReply from 202.103.96.68: bytes=32 time=50ms TTL=241
9 m) ^, z+ Q9 Y$ V! n Z1 b: M& ZReply from 202.103.96.68: bytes=32 time=50ms TTL=241 : m7 B. z5 B: [, ~( O
Ping statistics for 202.103.96.68:
/ H) M* s) c0 V) j( xPackets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
% i4 u" m0 n( Z2 Q/ t" Mtimes in / O L0 w I0 }0 p" v% Y
milli-seconds: 3 R/ O) P1 ]/ K) r5 u+ Z6 O
Minimum = 40ms, Maximum = 51ms, Average = 46ms % n; P2 A9 u$ X
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 # ?( `9 r7 G/ W" o
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均 ' {' W | J# ?5 n9 p* {! ^
速度为46ms。
; J. B& g q# V! C' g% W8 u4 `-l size Send buffer size. 2 {9 W3 C+ f1 t; }, v" ~
定义echo数据包大小。 4 @6 {9 Q7 U$ l: I4 A* V
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
% W F6 ~ u+ P% H" b2 P' g: T小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到
% I( q. Y% ?# m% n/ X T65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
; P- `5 U- ~* T) O+ ^对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 . T' P' U) Z F
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
$ D& u! D7 \. L' @ k! L; V/ ` @参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 4 s& o) w" ~* L4 |
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上, ; r: }, w4 @/ C" s
否则后果自负)
4 S2 D8 ?1 P+ _C:\>ping -l 65500 -t 192.168.1.21 ' Q o3 E! k- C2 G( L+ W; Y1 ]
Pinging 192.168.1.21 with 65500 bytes of data:
\3 ^+ a+ L, t: Y9 iReply from 192.168.1.21: bytes=65500 time<10ms TTL=254
I3 O$ T- k& w4 e9 z, qReply from 192.168.1.21: bytes=65500 time<10ms TTL=254
8 J, q: ?1 n5 H+ z- [# V5 [% ^……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, , p* B& w% {, f$ J1 i
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全
1 w% B3 x+ _! R2 u) |瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
! z, U" a8 D F; K4 d& X/ w" J- l v统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
3 Y3 T0 M$ {3 j! f' f( b完全停止,由此可见威力非同小可。 ; n" {9 E- ?0 _2 Z" c; V
-f Set Don't Fragment flag in packet. a9 _+ m% ]0 r; C# a
在数据包中发送“不要分段”标志。 % A0 Z' |, P+ }( y2 f3 }
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
$ d$ t: S: {; A0 v" \$ X再分段处理。
" f( A5 n3 Z7 d$ s( R-i TTL Time To Live. b6 `; |. N- z! d, F; w( ^" i2 _7 F
指定TTL值在对方的系统里停留的时间。 4 k [" W4 w5 f: j
此参数同样是帮助你检查网络运转情况的。
% Y) n! }1 G% T6 q-v TOS Type Of Service.
; ?8 I# H+ B8 u" Q7 G' Y将“服务类型”字段设置为 tos 指定的值。 1 ]! q) ~9 o) q+ Q$ z
-r count Record route for count hops. 4 V+ q7 [& v$ i
在“记录路由”字段中记录传出和返回数据包的路由。
. q" F- g; ?$ T z7 Y. v5 N: } V在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 $ h# X! m5 ]$ {0 u7 l
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
" |4 L0 R5 J3 N9 Z! a: m8 a. p9 f你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中 7 |! A4 S: z; V5 z' Q4 ?
给大家讲解。以下为示例:
) l' N ] Z% h" k6 \2 wC:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) # i% R3 L s$ z5 A0 Y
Pinging 202.96.105.101 with 32 bytes of data:
6 M8 P& a/ Y9 Z4 F+ c3 t! {, cReply from 202.96.105.101: bytes=32 time=10ms TTL=249
; y5 Q% v1 f; g8 ~ N, \2 dRoute: 202.107.208.187 -> 2 b" Z( @; @5 a1 B" k3 d+ t" E
202.107.210.214 -> 6 h8 W" x! @6 l* v, A2 _; B
61.153.112.70 ->
% r4 m) Y: [$ d, _/ ~61.153.112.89 -> % x- C7 z6 _/ ?
202.96.105.149 -> " o* z" g7 G5 O2 @( ~; |7 }, A
202.96.105.97 ->
! ~7 R4 R7 E1 N: w( ~202.96.105.101 -> 6 Q7 e3 u( T( x9 A
202.96.105.150 ->
" C3 n& C' a1 p$ r" e- b& G3 o61.153.112.90 5 M0 O w8 Y, _9 F" u
Ping statistics for 202.96.105.101:
+ d- c, i% w* L9 I, F8 C% PPackets: Sent = 1, Received = 1, Lost = 0 (0% loss),
& c$ X2 U" Y, H- J- E/ pApproximate round trip times in milli-seconds:
0 Z7 m2 X+ v h0 mMinimum = 10ms, Maximum = 10ms, Average = 10ms % J! U6 {, q4 J, R' C% r+ s
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 $ u% o) ^. r" s1 r% a
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105. " I! V, z3 L9 M* c4 b% T
97这几个路由。 1 i3 p5 y' V) \2 G d d& p8 f! ^
-s count Timestamp for count hops.
; H( d+ l: Q5 L0 |; U5 F指定 count 指定的跃点数的时间戳。 - `' ~. n: s# L7 w
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 9 P) S7 j6 ~& \8 D
-j host-list Loose source route along host-list. $ S) p; ^" l# K9 S$ Q1 h
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
9 R2 Y6 _& `7 v( d' K: U6 n路由稀疏源)IP 允许的最大数量为 9。 , [+ \, B& ~, p0 W- \1 r, c
-k host-list Strict source route along host-list. 7 `0 v9 {- ~/ ]
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( 3 I" q6 f |* x' e9 h
路由严格源)IP 允许的最大数量为 9。
9 \: D3 h, ~- Q' B* }: J7 m6 A4 l-w timeout Timeout in milliseconds to wait for each reply. ' y# `) N4 t, {/ I7 n! a0 [; b
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 ; g* F9 M; O& g& ]/ H% Z( b4 ^) b: l
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,
, _$ o3 f6 o* T2 @9 j粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo
* }% a+ D C( A9 y! l5 tws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 " K4 ^6 H/ q' U% J. L; M
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 3 r* ^1 V7 F) p' N
改注册表以下键值实现: 6 f" \/ l6 I) t- I/ X4 m7 B
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
9 y1 \9 N% Q6 W: U7 ^5 n2 _' i6 k* p
"DefaultTTL"=dword:000000ff
9 @% V* Z3 ~$ L' t0 \: i255---FF & d' J+ @& h" O8 D) i1 ?
128---80
6 @3 r! k' `, V 64----40 # ^( ~4 g- r( }. }
. N6 o% \9 q- T' K: k: }* c8 d% n
! {& F8 l2 n2 O' d( N U6 |
. M8 z+ w9 d- B/ N+ m/ B! S |
|