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

标题: PING命令的高级用法 [打印本页]

作者: 帅哥    时间: 2009-1-18 10:57:08     标题: PING命令的高级用法

对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 6 e1 d& _# e' Y4 n3 U' |
* P5 {! O4 \0 M( J
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
" D! L* I% f( H
4 u0 ]- c+ E' n5 F4 s( 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-list2 p2 H; {9 @: ~' y7 B" o  O
$ U1 W8 c. ~% c# S4 g. H
    Options:
  e/ W( z# V/ w9 s6 j' `! C$ j    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. ) z+ m' h1 ?: b; F/ T; H/ V5 c& P
    不停的ping地方主机,直到你按下Control-C。 7 ], J% T& C5 H" f7 K0 l, _
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
0 j& U! z! f9 j* J    -a Resolve addresses to hostnames.
1 i9 I0 o  K& L! Y: \
- P- R5 D# B+ Y    解析计算机NetBios名。
" R3 d3 o9 c2 _0 n- Z7 x6 B$ x- E! P( D" n( i0 H) K
    示例:+ Y; O( p2 S% U. A5 D

7 z+ `" ^! T: x, ^" S* y# m    C:\>ping -a 192.168.1.21
' I+ C" {1 P' v# _( D3 m    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 1 l$ K4 Q# K+ k% i
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
( S" R' V. D6 J! |7 Z) p' H    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ( i. t% x3 A/ [8 U4 V8 n, O
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
3 j9 \$ ]5 Z! j' a5 k+ W    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 x9 E: Q1 r: A. P/ `    Ping statistics for 192.168.1.21:
4 {2 J7 c& j" @, m. v; e    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
- v/ U4 l0 P! x# C) U" R7 s8 R    Minimum = 0ms, Maximum = 0ms, Average = 0ms 5 z+ Y7 l/ r$ X/ y  i, V
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 9 C, n/ X, p; d- L

0 k7 |3 J8 w4 C* @. M; n    -n count Number of echo requests to send. 9 Y) X- y4 ~- T3 G( ^
    发送count指定的Echo数据包数。 1 W) q7 f9 _0 D! P# O, {0 {

, t& W8 R( o; q8 q- U# @9 [    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
2 K5 ?6 ^: Q/ b8 S) o/ _4 e5 L( o& b$ y0 p. E! e5 p+ |
    C:\>ping -n 50 202.103.96.68
9 R2 a& B4 _( Q3 x    Pinging 202.103.96.68 with 32 bytes of data: ! [. i, {- J- J4 W
' B% W4 {& c0 ?% h7 z
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 8 ]9 [. _$ [' Q
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 & H6 _1 F, c0 `8 j
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
( H/ w5 ?! b4 P' a& G5 I; Q    Request timed out.
6 _: }$ A' ~( @3 q: G3 Q, p2 t    ……………… 7 S7 W/ n+ r: I# {

5 @" s7 i8 J5 J    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  w* D) `9 A  h' p' ~) c    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  c. r. o6 e# E1 r* [8 o    Ping statistics for 202.103.96.68:   b/ _. m: _, n$ d+ G3 H; }( v% H
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate - D6 l: ~1 V9 O. k9 S; O. N& e# V, x
ound trip times in milli-seconds:
$ _* I" T! d" v% P4 z# P' ]8 u    Minimum = 40ms, Maximum = 51ms, Average = 46ms , z9 S. j( X; s6 Y! Q
' [+ M2 ~0 M! t1 b- J
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。   f0 n$ E( X& R2 K' Q
    -l size Send buffer size. 定义echo数据包大小。 4 n# ~0 B* h: n$ C/ b0 j2 N0 Z' A
* m: b5 z4 y- [; E
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)* f0 y3 l* }2 M. P7 @4 K
+ D/ H2 E6 d- A/ a2 [3 m
    C:\>ping -l 65500 -t 192.168.1.21 + ]$ ]/ g0 c6 c1 H7 \1 O
    Pinging 192.168.1.21 with 65500 bytes of data: 7 a8 a0 {0 C' [/ Y
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
  v/ S. w/ t% g8 h    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 0 ?5 {- x5 i, C- v! x  t
    ………………5 |: R& B# m' n
6 p  Z9 E. W7 I- _/ O
    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
! R( v( J8 ?: X6 \  g, S2 c; ~+ x" M6 R
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
! {3 H9 G  ?, C2 o) X5 D    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 1 V  D* P9 K' H7 Y  M! Z) T+ V
    -i TTL Time To Live.
- v. X( Q- u' L- S( ]2 ^    指定TTL值在对方的系统里停留的时间。 2 B4 j6 h, E7 r. r7 V5 M' C
    此参数同样是帮助你检查网络运转情况的。
) c0 E6 m6 I9 f1 L    -v TOS Type Of Service.
+ R, N/ y$ P" j7 I    将“服务类型”字段设置为 tos 指定的值。
& g, y# m- q, ~% X; g    -r count Record route for count hops.
. ?. @- y! b- q; @2 M    在“记录路由”字段中记录传出和返回数据包的路由。
5 ~( b9 A  ~+ K4 r  \
: Z$ M2 ]- C- m9 B; P2 m    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
  d. Q. C/ I% s  S5 ^    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) , G5 K; t5 m; E7 C* t
, E2 S0 h+ E5 E  e* t- ^4 ^
    Pinging 202.96.105.101 with 32 bytes of data: 9 V- \$ p( T. y! A1 G" L) D
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 4 S7 g0 F: w: F8 }( B# K: H
    Route: 202.107.208.187 ->
& r8 R# g1 z/ `6 H! ]/ S5 B    202.107.210.214 ->
; d& p" y% B* I2 w    61.153.112.70 ->
/ }( I9 C# C- r2 M    61.153.112.89 ->
/ H9 ^5 K1 i9 Z+ ~: ]    202.96.105.149 ->
* E% y: O% h* y% U4 C. U* k  {0 A    202.96.105.97 ->
- W. |/ ]: o: B7 A! R* T; q; S    202.96.105.101 ->
( a$ i+ f8 }7 V! v/ O' c! [$ a    202.96.105.150 ->
9 T( p4 E1 |7 O    61.153.112.90 * q9 i! d9 h) z
! V' I! p; t4 T5 [, ^
    Ping statistics for 202.96.105.101:
( `" D- G* t  d& Q! `" _8 G    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), * l  D  @0 |+ ~# z: }& J
    Approximate round trip times in milli-seconds: 8 l( ?( O( L( m/ [  x4 @5 t
    Minimum = 10ms, Maximum = 10ms, Average = 10ms 5 k' I8 z7 u$ ~; a; \
2 f  F% r: N7 Y+ U. F) {
    从上面我就可以知道从我的计算机到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这几个路由。
: I; b3 Q5 p& N; y- S# m1 m8 o9 ^0 u! s
    -s count Timestamp for count hops.
+ C/ e1 E. x# s! y1 ?: E9 r' V  x: X  t    指定 count 指定的跃点数的时间戳。
6 z; a" J( i0 H& s) c. O    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 / z  w# S) u9 j" K; n$ T4 S  E
    -j host-list Loose source route along host-list.   |# ~7 r. E  D/ R& s3 n1 e* W
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 % H$ z. Z: Y3 d7 M4 v5 _
- D# D; Q" x# m3 f- r
    -k host-list Strict source route along host-list. + P4 {% ^8 ^7 O
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 ! z$ t9 z/ `. p' E9 O
    -w timeout Timeout in milliseconds to wait for each reply. 2 t! ?2 ?) }1 J5 Q- B0 F0 D
    指定超时间隔,单位为毫秒。 3 O, u! W1 q' `9 Y5 o: m
    此参数没有什么其他技巧。 / s& n: U- _+ C& L* a" @

' U- }: I8 n6 G    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:, c- F8 H, l6 z2 j8 A
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
$ |8 ?, U) y; i    "DefaultTTL"=dword:000000ff
, g' G3 g" K1 O! C' e    255---FF ) d; A: M/ ?# Q! ~" Z
    128---80
" A* a' p5 \2 |    64----40 6 @) A* N8 i- u$ \1 W$ e
    32----20




欢迎光临 航空论坛_航空翻译_民航英语翻译_飞行翻译 (http://bbs.aero.cn/) Powered by Discuz! X2