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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
) W, I; a% G% e: n2 V! _! ?" I1 n! ~# j8 Y/ x6 m: G7 p
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:  p; g: b* b! m% |

- r7 t, V- L' ~8 g9 I/ c. c    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
! e3 a* J* U" w5 R' O% H+ `) T+ V/ ^- @' \" C/ N4 S
    Options: 0 q9 {! B6 O% N% y% m& j1 ]' b! s
    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
$ F# f; l1 T+ c5 S    不停的ping地方主机,直到你按下Control-C。
7 k/ e( N9 z3 [    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
  B6 T7 C8 i) T1 e1 A5 p    -a Resolve addresses to hostnames. & }: }' g- Y8 |7 ^

  |" N0 {1 I6 j5 \    解析计算机NetBios名。 9 y3 ^1 \5 i' k( }5 C) S. ~

, I5 L5 e) a  `; b  E    示例:
% y  ~' ]! R1 k9 m2 P4 O7 e% x" [- _- q4 r- N
    C:\>ping -a 192.168.1.218 d& ~4 z8 g  _; J6 ~2 s: c# E
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
1 R9 z& k3 s6 p. Z/ q& D    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 E! ?' {, G3 C& L0 F( ]    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 8 l. A! U& w* F7 S6 D
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
- r; Y) c% J$ C# [7 O* \* s& ?, L2 O    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
# I7 t: _/ o! M    Ping statistics for 192.168.1.21:
6 ~2 }% \+ q1 ]" P. O    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
1 [$ r# Q& a3 {4 A( }; ]    Minimum = 0ms, Maximum = 0ms, Average = 0ms 6 K( U6 \! M- h
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 0 o8 Z1 n/ O% P/ w: V* c9 l' X/ J
; }4 m. x4 b- g
    -n count Number of echo requests to send.   @+ z5 r& E6 u8 T+ F( h
    发送count指定的Echo数据包数。 ' ~% d, a% K  I& b9 t: |. i

  P/ y$ i' y$ j# K: F0 c    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:2 \; a7 ^: t5 X6 ^3 J# [

- [5 [& Q9 c3 J5 f    C:\>ping -n 50 202.103.96.68
: k) k: v" H& D3 Z    Pinging 202.103.96.68 with 32 bytes of data:
! B2 q; |) n8 O4 i* h. i( J" n+ H3 s) r. _; N8 V; Y# R, k4 l+ n
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
& w3 K5 j, j! x" n. n" s    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 y1 b( ]- U$ `
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
% Y/ P2 U9 b1 r" O( i& u* d    Request timed out.
6 N! d$ h+ ]  @8 V% Z9 ^$ ]. u, \    ………………
2 \- e% n' R( u8 d$ k
9 g; z5 n# I8 }    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
5 D  w& f2 J, R# C" m5 Y0 B. M6 m    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 % D* w: ]( y& X1 c" \& i/ T
    Ping statistics for 202.103.96.68: % R7 B$ w9 N. X3 Z" g% z
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
2 X6 r  X, {, f7 w/ xound trip times in milli-seconds: ( i; ]5 i) m% d1 m0 B) i
    Minimum = 40ms, Maximum = 51ms, Average = 46ms % j3 j5 }6 i, B8 D
4 ?/ r, H/ E1 V0 C+ d
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 7 I2 ]# \2 L: {- R$ Q/ t* D
    -l size Send buffer size. 定义echo数据包大小。 / u: l' l. |# z8 G
. ^$ O3 ~9 E9 m
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)& o3 n+ z3 h! @- Q
) r. b- v! ]3 w2 l! m2 [0 {, E
    C:\>ping -l 65500 -t 192.168.1.21
! E( d- A7 h1 u- Z6 t    Pinging 192.168.1.21 with 65500 bytes of data: 1 o( l6 a+ ^  g3 U8 Z8 t
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 + X/ G9 H' e/ N) i
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 / w3 R# u8 o6 m- T, X5 U
    ………………; D5 r3 ?0 h/ G! b& R

: n) S0 @0 q9 _: F- P6 T8 v    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 ; o) l; P/ n7 e3 L- ?) }9 g7 G
1 u, S9 ?; O! w, ?
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
  W# m$ s: ]' w, k( q    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
6 k* k' D) E7 x% x) a7 ?! M8 Q    -i TTL Time To Live.
# M7 d) l6 `0 y$ K    指定TTL值在对方的系统里停留的时间。 ) B$ O) c( `# T6 U
    此参数同样是帮助你检查网络运转情况的。
0 C3 ]2 I' x9 f7 C    -v TOS Type Of Service.
4 m% a' M/ J* A% [    将“服务类型”字段设置为 tos 指定的值。 8 f% S# Y- Y) i' S# Z, O
    -r count Record route for count hops. 4 W. b/ V/ m. Z: v  N8 G
    在“记录路由”字段中记录传出和返回数据包的路由。
6 {3 x5 Y, {( W  b/ h3 r2 x( Y8 V. }  K( C( n
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
5 @1 ^  ~! J1 a% A# o- n9 g1 }    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)   _9 H$ Y( u- }+ R, B& Z2 f
/ M/ t  \' `2 c& u9 f. G
    Pinging 202.96.105.101 with 32 bytes of data:
# e" B: P; p/ j: k; C6 u+ _    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 ) Y) b0 _2 p. q0 j
    Route: 202.107.208.187 ->
3 T% u! }' U  x1 X    202.107.210.214 ->
: W3 q& c; M! f/ I% W8 i9 u. Q$ p    61.153.112.70 -> 9 v2 ~! y$ I* i' T* a) M4 R$ o# L1 {
    61.153.112.89 ->
" G" B2 p( _: a9 J* o    202.96.105.149 -> % d( |  ^8 @" C* _& N7 \
    202.96.105.97 -> : s& ^2 V$ U! H' T, U
    202.96.105.101 -> ( A+ ?6 o) G7 o9 M' b: Y2 N# j6 h
    202.96.105.150 ->
, S( @3 o! `% ?; b& `9 Y6 v    61.153.112.90   o* e) v% S9 x, i
) l5 I4 T) M+ J  r( @
    Ping statistics for 202.96.105.101:
- P3 r/ K: m' |- M% G    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
  n( z- f1 Q- |. N' F& n    Approximate round trip times in milli-seconds:
+ N2 g! l9 Q5 c, c. B0 D' [+ p    Minimum = 10ms, Maximum = 10ms, Average = 10ms
( ~+ B5 t! l1 o9 Y! D" A, J
. A4 |- ]9 F1 o- ]    从上面我就可以知道从我的计算机到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这几个路由。
. ~( g2 t; }3 n& Q
% d% S0 S  H; j& W    -s count Timestamp for count hops.
  k' ^9 M4 n0 s9 x- h& m3 q9 {2 O    指定 count 指定的跃点数的时间戳。
4 A8 t* c% z. q# q6 ^* d- [    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 8 U8 F" w- _8 H) T6 q5 e8 q* i1 Y
    -j host-list Loose source route along host-list.
1 M& g. M. x, r$ M( a利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
% a4 f# N* A9 z# _0 r4 b8 {% ?9 Z5 O" a4 L6 a
    -k host-list Strict source route along host-list.   J; k" m, f$ R( V6 c8 e
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 1 x) K/ T' I- E# E$ }3 L
    -w timeout Timeout in milliseconds to wait for each reply.   g6 H2 Q& s2 Y; }. H4 @, P
    指定超时间隔,单位为毫秒。
1 P6 e! s) i, s1 I    此参数没有什么其他技巧。 " R* q- |4 Q* z
& E8 @7 d- ?1 D: G
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:1 I4 y2 l7 l4 j9 O
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
  e8 }4 c3 m. o" e& o9 t    "DefaultTTL"=dword:000000ff ' V3 \5 N# M2 @1 ^: \- g9 `" W) z
    255---FF 5 @7 R: ?# ?: Q$ q7 _
    128---80
4 q. ]. E& p+ P( X& t  F    64----40
$ p# }# I' l7 r3 W    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-7-2 07:14 , Processed in 0.023001 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部