航空论坛_航空翻译_民航英语翻译_飞行翻译

 找回密码
 注册
搜索
查看: 1374|回复: 0
打印 上一主题 下一主题

PING命令的高级用法 [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
* a: x% v3 ]+ W0 a7 T- e) T* P$ t! z, B0 }
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
2 l/ [( `' B. i8 f  m, j. A* Y4 i1 B5 R7 m3 b% ^  i
    ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] │ [-k computer-list] [-w timeout] destination-list! z/ o! ^0 h% L% T& E( ~

- ~: D) z; X- P' l. w. M- E2 _8 D    Options: ; O+ M; I; @9 R0 s* A
    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. ; Z& V- Z4 A# x, c0 X( `
    不停的ping地方主机,直到你按下Control-C。 : ~0 g- A, W0 ~- w5 T
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
3 m1 b$ m7 O; O9 R. M0 s    -a Resolve addresses to hostnames. / V( Z0 G( w7 g, m
+ \! w% f7 {2 l+ _. A' O! N  b
    解析计算机NetBios名。
" Z. e& E+ ?& q, b  t
9 C& u. r; U" o    示例:
' x- F0 k* H: S: {  V
: f, ^7 b! {' o- p    C:\>ping -a 192.168.1.217 r2 C0 S: k3 `( N2 I% _7 X; L
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 6 v) r+ i, ^% y4 m. F9 y
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 - C9 O8 m; X- H& q- v
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 9 N- H: S* {" J; Y4 T( D1 d
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
/ @6 ]' l. `4 u8 y! N    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
, M: U  q, ]4 K3 v    Ping statistics for 192.168.1.21:
3 V) W# B4 Z. o; ?" u" f    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: " d0 f$ p. T! H( }7 X5 x3 N
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
8 E% l  g7 V, }    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ; ]- Q8 |% ^7 i7 h1 a( W
1 M" `4 R3 s/ l) p% {6 m1 R3 u3 s( b- N
    -n count Number of echo requests to send.
" y' K* v/ ]  c) D$ @    发送count指定的Echo数据包数。
9 B$ B  d# F* S4 Y7 Z& h4 ^# ~/ p" K/ y$ C
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
" P; ?7 ~4 ?: U- R
5 X6 B3 |" J  Z3 ]4 Y, z; n( y    C:\>ping -n 50 202.103.96.68
) ^1 Q4 a+ {2 s, \; o4 M    Pinging 202.103.96.68 with 32 bytes of data: & B9 b! V4 u# A" v; n
' G: B2 j. ^0 L1 O5 T( X
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
# w6 w: I2 C" c* q5 q5 R& Z    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ( q4 d. A+ n) a, o3 i5 G" G, ^
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 1 o. z5 T7 h3 c2 Q; C; f7 t
    Request timed out. + ]& m4 A7 G1 S# @/ H' p
    ………………
. T- _9 J% t$ g% u# g& a4 A- p. ]: `2 e, P& H  E, {2 d1 J; ~) t
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
/ x) L) [' A# t% e. Z    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
' j+ b' R) R. x    Ping statistics for 202.103.96.68: 7 a5 j$ o5 ?5 C, i
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate   w9 P# m; n- A. |) b/ ?
ound trip times in milli-seconds: ! z: r. J) f7 n! {
    Minimum = 40ms, Maximum = 51ms, Average = 46ms
- u+ C; r: P! @! s/ c; b' ?4 T! @' C# S' c: \
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
+ d+ }  G- o4 [/ U, c5 P; c    -l size Send buffer size. 定义echo数据包大小。 ( j5 ~3 d' [& Q7 R

9 w! R/ O- N5 W! q+ d% o) {    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负), w. k% ~" P# Z1 J! ]/ M

% y: k+ h8 N$ M: ?7 x* O! {    C:\>ping -l 65500 -t 192.168.1.21 * U0 v) u5 Q% A3 U# M+ w1 Q, K
    Pinging 192.168.1.21 with 65500 bytes of data: , g; |4 B- l" G) P
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 . o3 O7 U4 b4 M# D. G
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
* N5 u1 t  G; i: s    ………………
2 P" U6 c8 J# R$ Q$ s# Y  i+ S. M+ C  l; g9 b
    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 " J% o* X" ~8 q) P  S
) a7 s+ f& J* n% b$ e: B
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 8 _+ C7 A& l$ _& [6 R
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 + H2 }7 Y% c; {/ f8 Q9 s
    -i TTL Time To Live.
/ l. k; t$ \# N, ?    指定TTL值在对方的系统里停留的时间。   t# a* @% {: m" |0 T+ C& c! A
    此参数同样是帮助你检查网络运转情况的。
4 L, B+ ?! x. O    -v TOS Type Of Service. , [2 U: C% @# T' J2 k
    将“服务类型”字段设置为 tos 指定的值。 7 y% f2 m7 N% W% e6 P& F. ?
    -r count Record route for count hops.
  J* t1 g/ R; S    在“记录路由”字段中记录传出和返回数据包的路由。
# l$ t7 h- ]& i; M0 z# K  _2 F, C! B( V' b4 F" D0 |. y, U
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: # f6 Q: f, X8 H2 o% Q
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) : U( d! U7 J' f3 z9 w
0 g+ o" r, [9 c9 Q; ?9 J& k
    Pinging 202.96.105.101 with 32 bytes of data:
' _* K  d! y# d- u- S    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
+ m! E. t, s6 y6 T    Route: 202.107.208.187 ->
4 L  Z6 T: N" l! L/ l) r0 F    202.107.210.214 -> $ o$ r& A' d" y5 N2 E" O8 @
    61.153.112.70 ->
- ~, c* x- V7 [) B6 v    61.153.112.89 ->
8 p1 v) X+ N  T9 I1 X) j    202.96.105.149 -> ! e/ V; x2 b: }# `+ d8 R( e* q3 K
    202.96.105.97 -> 4 T% n2 {8 \! `2 V4 G7 P. v' G4 O. G
    202.96.105.101 ->
) G6 v% d, j8 @! i( j    202.96.105.150 ->
  K4 h4 _+ K- o/ z# x3 J2 y1 B    61.153.112.90
2 I* ^& n/ G1 I
( J3 ?$ m2 F" P7 w  j    Ping statistics for 202.96.105.101:
1 p0 |1 Z; g/ U( h8 X( x+ Q7 o    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
& N% \$ b, Y, N6 C1 j    Approximate round trip times in milli-seconds:
  c3 S* N, }: D, R, ?0 I8 ?  `2 e    Minimum = 10ms, Maximum = 10ms, Average = 10ms
3 V* N6 }. k0 b. W
# I, x1 k/ R# B: b* q* V/ l& J; Q) R% [    从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。 . v3 k, R/ h* ^! m5 J; g: N
2 h' w0 F3 g( \1 p. Y) D5 @
    -s count Timestamp for count hops. 7 z9 V* T4 F5 j" C! V
    指定 count 指定的跃点数的时间戳。 % D) t4 y! C; l. X9 m
    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
6 ~6 Y4 u, `' l    -j host-list Loose source route along host-list.
7 ?- J2 [! u! i, e$ ]; G. R( ]利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 1 B! c2 F: i( C* X( o
1 k4 ^* c; Z" ]& u
    -k host-list Strict source route along host-list.
8 y% S' s4 A4 h; r- s6 _) S利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
9 y! l  j3 o( L5 {( p+ \# ^    -w timeout Timeout in milliseconds to wait for each reply.
& d) o6 S) R8 C3 {6 Y5 x0 x$ p    指定超时间隔,单位为毫秒。 . w$ _& V: q; m+ E# m
    此参数没有什么其他技巧。
- u0 {4 x7 Z( Z7 Q4 _* c$ H) D( b4 H+ G7 }1 ?0 g% y/ D2 b
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
' i4 b1 X7 a  j. \! V% D8 m% L* X    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] - q" I) g( B9 n: M7 H# b) w$ J
    "DefaultTTL"=dword:000000ff
) P' W2 Q! D' Z4 }) f    255---FF ! Q0 _5 W% U& L- \* ]; F
    128---80 + E) p! D5 J- i, K  d! m
    64----40 8 H. u4 A1 W& h0 P: ^
    32----20
您需要登录后才可以回帖 登录 | 注册


Archiver|航空论坛 ( 渝ICP备10008336号 )

GMT+8, 2025-12-17 23:13 , Processed in 0.022002 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部