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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
) E- q; D: m$ ^  J- z* ~# p$ \. j. M
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:; a2 F# ~/ [4 B5 c# A
3 q* D. b/ F/ ^  b2 \
    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- T1 z( n6 O2 l6 \3 N: e

" D4 F# j% R8 }$ C- z    Options: & a. W# V7 }* }/ h9 e& A0 N9 F
    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. 1 D" k; X2 }! q/ @' L
    不停的ping地方主机,直到你按下Control-C。
/ @0 o4 U# x5 f    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 7 l/ {; P' ]! R3 X
    -a Resolve addresses to hostnames. 7 K8 j9 X" \& z1 p2 T3 `/ C

$ @2 I3 F# e0 [9 B$ w+ e# X" l    解析计算机NetBios名。 . G- @5 f2 u6 v: X% u) v% u

* M5 w6 R6 P/ X4 _    示例:
: \$ l' w2 R8 B  k) ]* d+ g3 L
) V3 ]$ i8 X! ]7 s6 |    C:\>ping -a 192.168.1.21% I$ H! I+ `4 M" B! a+ V! E: x
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: # [: l4 {7 K" r% t8 _
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 8 Z2 u. ?( B4 W
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 % L4 g3 r4 n) ?/ n
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 & e8 ]* Z3 G# D1 K
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
- j! z" x) Z! v8 c3 r5 ~1 k    Ping statistics for 192.168.1.21: $ M' m* _; Q2 o, K3 w
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: ( E) h; r5 c5 U& m8 X2 q
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
/ y: u% Q% I) P* `) Y1 S    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ) E. M. |+ Z7 K: f, _
* G( ?, R/ ?5 T4 j- R8 _
    -n count Number of echo requests to send. - b: b4 B! L1 f: X; g; q9 T# U
    发送count指定的Echo数据包数。
7 B9 P" p- }6 l$ }* B
, |+ f* M6 T. N    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
8 g& p9 a$ X9 C  Y6 D' y* U! P1 D- s
    C:\>ping -n 50 202.103.96.68   H2 V4 c  X8 l; ?/ m
    Pinging 202.103.96.68 with 32 bytes of data:
) m) r" ]" }  F5 Z$ U' E1 L
2 a; ?5 g9 q& S2 t    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 % ^( z7 p+ n0 b/ O% {- t' u
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / s" D, w; J- [! H* [9 v
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 1 m# Y$ D; |. @8 L5 F5 K
    Request timed out.
+ q/ A: n5 s5 S! u+ ~% i9 y* [% I# k    ………………
! e% J" U$ n8 F# @# s% x6 k: T: A5 H& U; p5 p2 Z7 o% m9 J
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
4 t0 G, k$ n9 s    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
$ i. j8 N" @+ n' k    Ping statistics for 202.103.96.68: $ k$ I1 @' w8 F+ ?- Y0 a
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 2 J. T$ d7 Q0 Q
ound trip times in milli-seconds:
5 u3 [- ~, I' K+ O& {8 Z1 u    Minimum = 40ms, Maximum = 51ms, Average = 46ms ! S+ f' l# G+ ~! Y1 A

6 ^7 l( c6 r8 i    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
- a4 H" G- P0 i    -l size Send buffer size. 定义echo数据包大小。 ! V& v3 j, J. h
# V0 b; `9 b% Q, ^" H
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
$ C9 i4 i& h$ F+ B+ r4 S
- n3 p3 W  K" S    C:\>ping -l 65500 -t 192.168.1.21
1 n: |* t2 q$ q& j8 v  B3 }    Pinging 192.168.1.21 with 65500 bytes of data:
4 r# k) [* P$ k- S  o% O    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ; ^1 o% u1 z& @# [. ^
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 $ h8 \6 N/ N4 _5 G; k% z
    ………………
. I; w, w! G9 M9 ]" ~! x1 Y
$ b( X0 d* {$ g& j6 p    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 : l) P2 E, K! P3 @6 ^
' Z: L; A" Y2 d* w0 g2 L; j' I# R
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 + g. X* ]1 P3 v! k" h+ m* R
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 & _3 H! U9 T7 M4 G5 r- |' Z
    -i TTL Time To Live. ' V; ]) D& X' j( B# \$ u
    指定TTL值在对方的系统里停留的时间。 ; e) b: R2 U* Y
    此参数同样是帮助你检查网络运转情况的。 ; R  Y, z! e+ N! L- d
    -v TOS Type Of Service. - X3 n; f, z+ ?0 s
    将“服务类型”字段设置为 tos 指定的值。 0 L8 |' A" i! K( D
    -r count Record route for count hops. 2 b$ Y6 y% j: Y- C% L
    在“记录路由”字段中记录传出和返回数据包的路由。
9 t9 D# N- f$ T8 a! N5 K! Z% _
9 Y+ g6 @# R# y- \8 @  F    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: ! |! E0 E* G9 n3 c1 f  a: u2 [1 \
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
" t( k$ [: g: ^5 e; o& G5 O+ M) h3 w
" T$ A1 t; T$ d  _    Pinging 202.96.105.101 with 32 bytes of data: 4 p$ Z  a) b5 }3 x
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
2 ~5 P$ ^* o/ `; A; q9 o, D    Route: 202.107.208.187 -> * n0 g/ B2 l, u, j0 n. {
    202.107.210.214 ->
2 H" M" S+ z, t4 v3 g: [' U8 t    61.153.112.70 ->
  j9 v* \* P) ~: e$ P$ Z5 T    61.153.112.89 -> 3 e( q7 [- c/ r" C, ^$ U' _) V
    202.96.105.149 ->
( ^' H  K0 |& [0 C0 ?6 d    202.96.105.97 -> : ?- ]4 y) T# C8 g. N
    202.96.105.101 ->
) H! g' e, ~' v; C    202.96.105.150 -> * p8 k9 Y6 i1 ]
    61.153.112.90
3 O! h. Y4 z1 @, K: t
' B& c3 Z$ o, d# _! P$ y    Ping statistics for 202.96.105.101: 8 e# l/ N0 k# z0 j/ q
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
& [4 C& ^) }. B) M$ d! Q" Q1 c6 Z    Approximate round trip times in milli-seconds:
4 ]4 N; O5 @# W6 i9 l& U    Minimum = 10ms, Maximum = 10ms, Average = 10ms 5 r) g1 _  m6 _0 I7 y

; |1 W/ h" e7 T6 H5 [( m    从上面我就可以知道从我的计算机到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这几个路由。
, F  Y, I! W, P. V" z6 A' Y# N9 [8 t; b/ U
    -s count Timestamp for count hops. 9 G$ C) H" Z) n
    指定 count 指定的跃点数的时间戳。 # P2 G5 V9 B$ i! |& s; G3 Y
    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 . h& u2 I8 X( M# n
    -j host-list Loose source route along host-list. : u* y$ o; z; \
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
8 d6 o$ Q# m: R% Q, j
4 `: c& L& M# V5 Q3 {6 m8 k* o    -k host-list Strict source route along host-list.
2 v* }1 ^+ [" S  @1 P$ w- `+ y利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
8 M  {: v  E( H1 E( S: }; q    -w timeout Timeout in milliseconds to wait for each reply. 4 f4 M* q) X5 q2 D+ n% O
    指定超时间隔,单位为毫秒。 & d6 B+ x% \3 x5 V! k& z
    此参数没有什么其他技巧。
, t9 s2 E4 ]6 Z+ L% N8 b' V( n6 D4 q, m% M
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:  a! L& M; m' F) N3 o5 u4 u: T3 ?6 s; a3 d
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
3 G( R. G  `! H+ c    "DefaultTTL"=dword:000000ff
+ a2 G0 A: U, ~1 w$ Z    255---FF : X1 c$ G  n. Q* V
    128---80
, l4 H  X- e$ }# o7 X) y7 N. }    64----40
$ p+ d$ B! l: o+ v  R! o9 E0 m& B    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2024-11-25 02:15 , Processed in 0.023001 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部