TA的每日心情 | 奋斗 11 小时前 |
---|
签到天数: 2398 天 [LV.Master]伴坛终老
|
ping命令使用技巧# E7 F6 P- ~! i/ ]5 K
-------------------------------------------------------------------------------- " }/ m3 J1 t" ?2 J7 Q
对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的
9 N5 m' s- f9 D# t, b人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用 / F, z- _: {! @5 `3 R% { t) U4 f! s
ping这个工具,也总结了一些小经验,现在和大家分享一下。 / ~- l3 [+ ?% }- E- M
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有 + Y! h2 ]2 w& _2 z/ z
在安装了TCP/IP协议以后才可以使用:
6 r1 V% i. K6 t. [! B" nping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s
4 P4 z" p/ F+ T& l9 ~# U0 C% B- d2 Icount] [-j computer-list] | [-k computer-list] [-w timeout] destination-li - o- F) e$ A6 X! _3 O
st
. `$ S2 n6 N- q) m1 D' J6 @Options: 6 e/ o3 ^3 ~. F7 e0 X7 I
-t Ping the specified host until stopped.To see statistics and continue - ty
~6 y0 ~4 G4 dpe Control-Break;To stop - type Control-C. 8 V8 l4 A9 C3 B0 h- \: p
不停的ping地方主机,直到你按下Control-C。
3 y: \, h1 ~( _0 U% x此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
9 B/ g9 x/ I' f( H+ p-a Resolve addresses to hostnames. 3 w7 }- w9 {1 O s' v7 ~9 x
解析计算机NetBios名。 ; n3 I9 g0 }2 h
示例:C:\>ping -a 192.168.1.21 % z$ J% ~) B( i2 H' Y
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
/ z. P7 W6 D, q) m8 l6 G& WReply from 192.168.1.21: bytes=32 time<10ms TTL=254
6 N2 T) r L! B. o- \Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
' N; C7 x G4 v7 j: pReply from 192.168.1.21: bytes=32 time<10ms TTL=254
+ W* ?% p$ U! s% [' N, WReply from 192.168.1.21: bytes=32 time<10ms TTL=254
- d9 `( ?1 _& ]7 F: O9 aPing statistics for 192.168.1.21:
" f7 O6 d2 `) A5 e1 X' z8 QPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t
7 U" h0 }! Y, ^+ t& z2 eimes in
1 j8 \3 i- ]' _9 W, J9 M/ P4 B2 H: Kmilli-seconds: 7 m- y" _' w; U6 \/ z. m! b
Minimum = 0ms, Maximum = 0ms, Average = 0ms ! [+ T* Y2 ^5 x3 k
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 * g1 J5 \. r& Z- Z4 E" @, T
-n count Number of echo requests to send. ) x& }3 U' |: E# W5 L* ]' l
发送count指定的Echo数据包数。 ( {" @2 D5 g: f+ h1 }+ M5 `$ F
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对 " c3 N% L, p. e5 D- ~- A
衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 9 i1 Q1 P. s. E" K- a+ U) r! m; K
时间为多少,最慢时间为多少就可以通过以下获知:
+ `7 x" F/ f( E8 [8 L- v; F* E7 V1 RC:\>ping -n 50 202.103.96.68
2 D7 R, d9 b- c. V* z' Q8 J/ n4 r& Y! `. wPinging 202.103.96.68 with 32 bytes of data: 1 F; b, A$ q5 G8 X3 x1 v
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
' j+ Q) g$ |8 {# p o3 p- t. p4 l7 WReply from 202.103.96.68: bytes=32 time=50ms TTL=241
4 K: _, k. e% |- U- z( SReply from 202.103.96.68: bytes=32 time=50ms TTL=241
: h( Y9 x4 `4 ^) @! L( IRequest timed out. Q3 B( r% |' X, H5 h; {, r
………………
& ?7 R% Q' T, z+ i F; Y- PReply from 202.103.96.68: bytes=32 time=50ms TTL=241 & ]1 I' { M! a8 a1 o
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
$ p8 H z/ B6 r0 _1 @2 }; M) A- bPing statistics for 202.103.96.68: ( x8 M8 C4 c% Q( ~( u- C! M4 \8 R
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
, Q# n3 L' ~) \/ o9 K5 ptimes in + J' T9 o# v( g5 e
milli-seconds:
& }4 O6 e/ u* L: f; g1 a$ t2 bMinimum = 40ms, Maximum = 51ms, Average = 46ms , k0 O1 v/ Q/ N$ Z
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中
& M0 d* U2 [: Z; ~( x有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均 / W% {8 R: _. f( _" B1 `
速度为46ms。 # x. C' ?5 x' Z& [( n+ c" B
-l size Send buffer size. 9 V5 n- b2 L0 J8 W0 L4 T# b
定义echo数据包大小。 " Y/ e/ w7 ]" e/ g' j2 o; I* ~# q
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
- C% x) P7 ^) a3 M, |小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到
c" X5 u' k. c& @65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向 0 i. I, `' {- c R0 ]; `
对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 5 w( J j, x5 j! i) Y/ J
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
' I( z& l% ]0 @" l9 Y* N+ ^参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 ' |1 G5 I1 t" X& G1 z+ P
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上, . w: J2 t; W# Y/ s# K) S& C
否则后果自负) ) }( x& P- [1 {+ a: r9 L S
C:\>ping -l 65500 -t 192.168.1.21
8 W- N# `7 U* Q; o. LPinging 192.168.1.21 with 65500 bytes of data: 4 H( Z# I1 s% c! a9 H M3 p
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 / H8 w* V5 t2 i9 O. X
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
6 G1 G5 n' s& a, V8 l, X" Q……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包, 9 _$ R+ A0 C" W7 r- L2 Q( [
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 + J" B/ z5 V8 Z" o- u2 A
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系 * X) J# b3 U) C- N
统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
$ |+ x9 T; H& U% O: C) E. Y$ C4 M完全停止,由此可见威力非同小可。
4 h7 V3 d6 B6 ]6 S, @-f Set Don't Fragment flag in packet.
. Q1 y7 s& V4 M9 T在数据包中发送“不要分段”标志。
. l/ ]8 b% A5 ?6 S5 t U3 ^/ B在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
/ l7 s/ ^! E( k; G, w/ `: }再分段处理。
6 ]$ I' g- [: a7 N-i TTL Time To Live.
, u# C3 e/ V: k E1 b8 d7 {指定TTL值在对方的系统里停留的时间。 % \) c( a( |: r1 e" m; Z5 l
此参数同样是帮助你检查网络运转情况的。 ! M2 ]) f( X2 R
-v TOS Type Of Service.
4 U+ g& |, O1 ~4 F5 D- Q将“服务类型”字段设置为 tos 指定的值。
, N( ^; A7 ^1 L/ B-r count Record route for count hops.
t+ v0 \3 t4 z. \在“记录路由”字段中记录传出和返回数据包的路由。
$ C; Z* I4 S+ T, E在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路 ; x) T& e9 U |- h
由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说
* ?- z2 C7 c% k: k- R1 e你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中
7 @+ A( }# f+ C3 [& j/ J4 L) ]给大家讲解。以下为示例: ) v6 U( F9 y0 E6 K8 `3 Q
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) ( |" X. D; E" J5 r: X
Pinging 202.96.105.101 with 32 bytes of data:
( }- _4 _6 w# [Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
5 R& s3 H% C8 x9 }Route: 202.107.208.187 -> ; m& r% U$ ?+ a* t3 e) R
202.107.210.214 -> + J2 b) F+ K* Y8 J; M3 x4 h
61.153.112.70 -> 5 p# P0 \3 o% ^$ z, ~/ y
61.153.112.89 ->
3 b- v. J# _# c3 A3 h8 q( A0 `9 I202.96.105.149 -> / e; g' j2 r2 k
202.96.105.97 ->
8 q; Q9 \ B8 Q5 J! L4 q202.96.105.101 ->
- o+ s/ ^5 R d8 V202.96.105.150 -> ( g4 o2 {* e8 b# {" m
61.153.112.90 . X: z0 ^& p/ ~/ E0 J. L4 E7 t
Ping statistics for 202.96.105.101: ! |( a0 w% F$ p( W3 U
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
' x3 Y; f2 `& g9 W; uApproximate round trip times in milli-seconds:
0 ?4 S+ [( S# [1 h' I) s9 _% KMinimum = 10ms, Maximum = 10ms, Average = 10ms 3 ?0 N$ R# _5 p, x; q% I# T0 F
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 , b0 a; t- W: G% K3 R8 ?8 p
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
9 ^6 }7 I/ \0 V* Y) x97这几个路由。 , V V4 f1 q& r. }. z# ]' [) T
-s count Timestamp for count hops. / ]4 I% i v: r# y, g# @' G
指定 count 指定的跃点数的时间戳。 ( S5 O4 F: \1 K+ Q' l4 f' W9 g0 \/ `
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
# E5 r! y; h5 [ y" m7 j( }-j host-list Loose source route along host-list. & k- m) Z9 ?* k/ K" m- ^
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
" T3 ^+ y% `% X. Q, e. v3 N路由稀疏源)IP 允许的最大数量为 9。 6 ?. e2 V+ O6 k1 @2 \* d5 [
-k host-list Strict source route along host-list.
. O% b4 B6 a& j* D; {利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( 4 I; p8 S) ], [2 {" s& S, g1 y
路由严格源)IP 允许的最大数量为 9。
1 |) z8 Z0 y$ M( ?9 W-w timeout Timeout in milliseconds to wait for each reply.
2 F" y- b6 s! M, X# F! B指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 $ O! B9 \7 S9 K2 T
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小, : u; t, [$ I6 M# j! i& H) q. e
粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo 3 i& j6 g( u! S( V5 y% ]( G
ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240
[! q. b4 b" [, a- ~2 y-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 2 | L. q$ d* V4 @7 I& C) n
改注册表以下键值实现:
7 T( F6 P% S% L, n[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] - E: z+ F. r% d+ J
& x8 T+ ~5 v* P3 e7 l
"DefaultTTL"=dword:000000ff 9 N4 w( r, Q; `1 F
255---FF * O$ a, R. U$ e( b0 [
128---80
* c% t) {- z7 J% r 64----40 , y# G6 u/ G8 j
: \' X4 ^# G8 y Z q0 r
- z5 c& f$ H$ m* k) ~9 p, e3 `' r2 {5 @& @4 d7 g
|
|