TA的每日心情 | 奋斗 前天 10:28 |
---|
签到天数: 2370 天 [LV.Master]伴坛终老
|
ping命令使用技巧
% X$ ~+ R3 d. a5 x+ ^& h--------------------------------------------------------------------------------
4 S3 b. z/ [" `! s5 W对于W I N D O W S下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的
_9 ~' l7 c& q" ?3 y人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用
0 j- h, k& K8 Cping这个工具,也总结了一些小经验,现在和大家分享一下。
Y8 J8 w: R G4 h现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有 / _$ Z; T* I% ]9 }! |1 m+ Y4 \" H
在安装了TCP/IP协议以后才可以使用: q9 f3 X) C; H2 w
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s 7 A6 W( `2 @9 E8 k5 {% n
count] [-j computer-list] | [-k computer-list] [-w timeout] destination-li ( O$ E/ C. y: ]
st 0 Z P9 Q/ i. j
Options: & Y. L& ^1 r6 A
-t Ping the specified host until stopped.To see statistics and continue - ty
$ v: T j" t* e% qpe Control-Break;To stop - type Control-C.
3 d! `, b( e+ e. t5 {8 N不停的ping地方主机,直到你按下Control-C。
3 {2 e3 z+ V" q+ q此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
* P1 D8 _8 P/ x: O' o-a Resolve addresses to hostnames. " d) M8 E" E/ [- B% J( v' F
解析计算机NetBios名。 ; X/ N/ T3 q6 r3 ^. y* F$ ~8 }
示例:C:\>ping -a 192.168.1.21
{5 g: y8 k4 iPinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 9 F" P4 }5 K) Q
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
2 j$ P5 e. R# m! VReply from 192.168.1.21: bytes=32 time<10ms TTL=254
* u; C- O; j& f! U/ YReply from 192.168.1.21: bytes=32 time<10ms TTL=254 8 d7 c. ^0 U$ y. c" V; } G
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
) G) |2 K- P; `# ~; M7 E$ ZPing statistics for 192.168.1.21:
/ w; C: v* l/ h; d! s# G: yPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip t ) C7 G: b, C+ c( p
imes in
/ |! S! L+ {" E1 k% `7 C0 `& H0 u: a' nmilli-seconds: 6 `4 r' g2 C3 ~; M+ `
Minimum = 0ms, Maximum = 0ms, Average = 0ms 3 m# m% E5 d; T) {
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
9 }1 y6 s! L9 Z" a-n count Number of echo requests to send. * A" Z" D, M9 ]4 U+ s. D
发送count指定的Echo数据包数。
4 m7 t3 \8 p6 {9 Q在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对
8 k! e P) w/ U衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快 9 A6 d8 @% C9 _/ a5 [8 r& r
时间为多少,最慢时间为多少就可以通过以下获知:
, X- ^$ S9 P, \; LC:\>ping -n 50 202.103.96.68 " t9 i T, A) |8 ]% E& l
Pinging 202.103.96.68 with 32 bytes of data: ' Y# \2 t6 l5 c3 ^3 ?: {5 ~8 B
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 5 A2 X5 g- {2 N7 [. C6 s
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ' m6 q$ ]' ~& @ t- K( S
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 . D; @9 }; u/ y9 @( ]3 V
Request timed out. ) f" H+ k# v6 F1 M8 c* e9 I6 ^
………………
: F! J. Y* n4 u) eReply from 202.103.96.68: bytes=32 time=50ms TTL=241 8 F. y7 x( f0 }9 y; o' e' }
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 + J: G/ z& C3 M) Q! G
Ping statistics for 202.103.96.68:
$ b# d$ t' D$ J& Z; S% ]0 ^Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip
# @9 |/ y+ m: i% ]$ `' Vtimes in 0 q! V- s: [% j! L6 k: T, M
milli-seconds:
- \# \2 \# Q# u$ V7 {Minimum = 40ms, Maximum = 51ms, Average = 46ms " e5 P5 w' L4 |2 v$ G$ m
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中 5 q2 S1 Y# h5 a$ r
有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均
5 ^- g/ x! H: @5 @速度为46ms。 9 m6 y6 T* Q) H; C, G" P6 Y( `
-l size Send buffer size. - Y- M# I# I3 L% {0 y8 z
定义echo数据包大小。 8 h$ @& V9 q8 h# J/ f6 |
在默认的情况下W I N D O W S的ping发送的数据包大小为32byt,我们也可以自己定义它的大
* E4 w. t( v: N' x$ ]7 f/ f: J小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到 ; S( E+ ]& l6 d$ j
65500byt,因为W I N D O W S系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向
7 w9 O0 y s& \5 m, e7 V对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解 # }$ L; N9 E" A$ A1 O6 M B
决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个
; t; z7 d* R1 m: t8 t9 j- s$ U! ~& j4 y参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个 , q, \. s% v0 @, O
带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上, 0 Z+ P( {/ i8 `& [0 x+ M2 h
否则后果自负)
& ?, A d- Y) W l$ J+ }. jC:\>ping -l 65500 -t 192.168.1.21 ' Z: L/ m& q: k3 O! X5 p
Pinging 192.168.1.21 with 65500 bytes of data: / D# k6 a0 g- s* L* m8 f
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
1 }( S% r5 _$ T+ \Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 2 P/ M9 {9 x( y
……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,
[& ^+ N. C& \& _如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 2 O2 a/ y5 l4 ^7 H& ~9 R7 x K0 d% N
瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系
9 r) Y$ d+ Y% j统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务
. L6 G3 c* C( F完全停止,由此可见威力非同小可。
! }; j2 [; J/ g1 o3 n+ I-f Set Don't Fragment flag in packet.
' a o; i2 O( f) a. [6 O q, f3 A在数据包中发送“不要分段”标志。
, c9 u! }. @8 Q/ U在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会
_6 }2 l& x# Y' T# a再分段处理。 9 D. v2 o0 Z& Q$ @2 z$ X
-i TTL Time To Live. ' y- j8 D" T8 q" _" ]" m- h2 [
指定TTL值在对方的系统里停留的时间。
8 V7 ?1 x: ^, S! D3 Q% o; v6 `: P7 B, O! v此参数同样是帮助你检查网络运转情况的。
' j' [' @, |7 M-v TOS Type Of Service.
' c% d3 Q9 X3 s7 K" b将“服务类型”字段设置为 tos 指定的值。
/ V) V, g$ A- L2 K8 Q0 ^-r count Record route for count hops.
! m4 ^% ~6 L2 v( e( z) X, k在“记录路由”字段中记录传出和返回数据包的路由。
. J0 L0 C. q( r' o/ d3 b% f在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路
2 [- M& J, U& z4 [: `由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说 - Y p( {: f. U" p
你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中
9 g' R# X8 z1 J给大家讲解。以下为示例: 7 U& ^/ h; n, F2 A9 L
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
& V, H N- H, m/ a' ?Pinging 202.96.105.101 with 32 bytes of data:
0 W/ Q( E( `: qReply from 202.96.105.101: bytes=32 time=10ms TTL=249
0 N- C' Y/ H6 G6 w& l# E4 R4 rRoute: 202.107.208.187 -> 6 w, K: N# ^6 I. d, [
202.107.210.214 -> " K! P4 u, H: }0 q) w7 u
61.153.112.70 ->
2 [: v8 l0 e) P61.153.112.89 -> 0 x) N; y, A! y+ Z4 F" X
202.96.105.149 ->
) @8 ?0 s9 x' r n& F7 W202.96.105.97 -> ! R* l/ r Q$ G; `2 N6 g" c. {1 \% u
202.96.105.101 ->
6 }* G, ]# W h/ D. w202.96.105.150 ->
* r- [) L0 X: r6 G. D61.153.112.90
3 u; C% F$ v( M7 R% b/ v: P/ P# APing statistics for 202.96.105.101:
" b1 n* \6 c( WPackets: Sent = 1, Received = 1, Lost = 0 (0% loss), / C q0 Z8 _$ r' o) d
Approximate round trip times in milli-seconds: , Q5 m6 a. f) l, R1 }
Minimum = 10ms, Maximum = 10ms, Average = 10ms
" r7 v% w, ?# H! [2 ~从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,20 1 A$ w' ?, Z! K1 N9 d
2.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.
8 K8 _2 Z0 ]" E8 k9 X97这几个路由。
( B- n5 d9 \) j3 I8 m% D5 w-s count Timestamp for count hops. * n @& i% {% n+ O% Q
指定 count 指定的跃点数的时间戳。
# `* |* O& g1 ]) H( X2 ^此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 3 q5 \8 X4 z: J4 `. H; z
-j host-list Loose source route along host-list.
, p- j/ d6 {. e+ J" G# C6 L利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(
1 p3 i. t3 u' ~# a8 h+ { D路由稀疏源)IP 允许的最大数量为 9。
9 v9 [1 m0 `! n R# Y-k host-list Strict source route along host-list. 0 F( J P+ K0 j( C' W2 I4 s& ?0 b
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔( 4 e/ I) n* U3 M+ v; [! h; M: L
路由严格源)IP 允许的最大数量为 9。
+ Z1 _& t: p3 Z; ^( t-w timeout Timeout in milliseconds to wait for each reply. 0 R! _" ]! |# z h. y ]6 Q
指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 : F# n/ V4 d# }8 x6 L# i0 r
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小, + }/ c# q# d# c
粗略的判断目标主机的系统类型是W I N D O W S系列还是UNIX/Linux系列,一般情况下Windo - `, n6 U5 Q+ Z/ K0 Y+ L8 \
ws系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240 9 d1 R( Z* c9 c% u- \" } `. I
-255之间,当然TTL的值在对方的主机里是可以修改的,W I N D O W S系列的系统可以通过修 ! h& k5 k7 ~; i6 K
改注册表以下键值实现:
% `! q3 }6 P% j( c[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] ! n& Z# M" R. d' Y( ]; @
, _" L0 X' ~7 [' U"DefaultTTL"=dword:000000ff
9 a. F' X1 p+ f7 c1 I2 j255---FF . f- h5 C9 ]$ i$ g$ V
128---80 / c3 _' K. c" I* O) @
64----40 ; {+ m F X4 \1 {- ^: k! d
( q: `, a4 T* E. U
* d0 Y8 {' \- T9 T
0 C7 L8 v t) q6 S |
|