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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |正序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 6 a0 _/ `' Z2 t5 ]$ {) J/ d" b0 p% M, t
' q# {8 S% L- b- [7 H
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
4 ^/ T. c) }3 F) S* t. k6 l( {6 C) i3 j% M) K$ b* q' g
    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
2 f2 U1 b/ u5 C$ n6 t$ p3 {6 G& g/ C+ J( v2 ?6 i; D- C
    Options:
# w) W6 h* |- n" H# O2 @0 M    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. ) p- E! S+ a! v1 Z; w+ P7 B* x
    不停的ping地方主机,直到你按下Control-C。 ' Y/ X, M) X+ i' O9 O9 S# U
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
* `5 r5 n( j. @! t$ @    -a Resolve addresses to hostnames. ( e/ N' b. m0 S, P3 @
  }% C. _! d2 g* Z1 X, |
    解析计算机NetBios名。 * K3 `8 G6 G4 @4 r5 z' p
+ x1 [7 q1 g+ u5 V2 ?
    示例:( i8 b- `" O; h& E
# l7 t: ?7 V+ G
    C:\>ping -a 192.168.1.21
. T, w9 c0 \% M9 d# k    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: $ x9 F; b8 I4 U6 q: O
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 * j/ N4 {* j8 N' W1 o$ A& A! g
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 9 @5 ~6 n9 T8 f: D: L# m/ y% J
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 + v$ h* L0 n0 K* ]! k/ y' a: @3 |
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
4 v( |+ w/ r1 ?6 y: o    Ping statistics for 192.168.1.21: 9 A4 @9 m$ N6 A9 f! h0 O; j
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
, g  N3 o8 C* [( q: M" [1 }+ n! k    Minimum = 0ms, Maximum = 0ms, Average = 0ms
" U0 x, ?! n- N4 }    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
" N' O) ~9 B+ s) _# C  F6 e4 @. M* D$ ^+ Z3 W
    -n count Number of echo requests to send. # ^& U$ }, u$ n, x/ V! D
    发送count指定的Echo数据包数。 2 R& [5 v. k1 z# T& y2 W
( X" }9 W3 R# D2 R) |/ h+ h
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
& `8 W" j1 _; r: F
- u4 K8 A0 @7 {' n' d6 h* p/ w( G( Y( W% A    C:\>ping -n 50 202.103.96.68
8 P; n% f- T, L+ j* T    Pinging 202.103.96.68 with 32 bytes of data:
& }- `' F# a. U! E' H- i9 y. m
! m1 K  c/ s- t' \* N6 n, p    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 3 k0 y8 L' `- h9 ]: h7 v
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241   A/ o% h7 i% {
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 : v. ]8 u6 ^% D7 o+ G
    Request timed out.
# r3 q' m$ J( U5 i5 O    ………………
" h2 V" Y( A$ ^' H3 F2 `& T9 ]# s5 h7 w3 C) I/ N
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ) x& R3 Q7 @$ K, z9 i3 z
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / _- U0 a& o# @% M7 f
    Ping statistics for 202.103.96.68: 5 g: a2 M! @8 \* V# s
    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate & c3 u* W: }2 P& D8 l7 d
ound trip times in milli-seconds: + N8 Y6 V9 {! `% e9 w% R
    Minimum = 40ms, Maximum = 51ms, Average = 46ms
% D2 X- C/ _* `' h. o+ b7 A- j
  c3 |( t5 `+ N6 A% K" o) f; ?    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 ( K, ~9 y7 J& x5 w
    -l size Send buffer size. 定义echo数据包大小。 / x# v$ \/ h5 V( i: A$ E, f

# b7 [' j* G& `9 s    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
- f) a/ r% f/ f6 \/ N$ f* R, [7 ]0 X2 K# D1 ]# \# E2 r! H& `
    C:\>ping -l 65500 -t 192.168.1.21 5 v4 m; D% X7 Z% Q* J& O, x
    Pinging 192.168.1.21 with 65500 bytes of data: # J( k. o% r3 [3 h: F/ \8 X
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 & \  a6 i6 w( s! W
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 . N8 o5 C, r. o' S. L4 G
    ………………
  P3 |2 n) d9 z& s! e% U% k0 w* z1 \- c$ L$ b4 b; J, F7 q
    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。   I" `" B% T9 n* }! c0 J* ]  d

  S, t: n1 `/ \/ l0 Z; C8 q    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 6 c. s+ J- x9 T( W5 N
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
5 H" f( D  X! P" q, N    -i TTL Time To Live. . e! H4 s  I) A5 g. X0 X
    指定TTL值在对方的系统里停留的时间。
0 \+ z1 d( E9 x2 u6 W    此参数同样是帮助你检查网络运转情况的。   e6 l! I1 q# f! E: i- k/ |
    -v TOS Type Of Service.
# `& v4 |8 ~9 L; r2 y4 V( p    将“服务类型”字段设置为 tos 指定的值。 $ E3 D! K9 _% z& }
    -r count Record route for count hops.
, x4 s8 Q# y3 I) F7 S    在“记录路由”字段中记录传出和返回数据包的路由。 4 z0 Q, \1 K7 {: x, |1 D( j

9 s* \2 d2 O% H2 O    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
: W0 V5 Q% C! i$ @* ?% C$ V1 x    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
( V) |$ @9 y/ t3 j. M4 \8 j
9 f9 L' K( ]1 c    Pinging 202.96.105.101 with 32 bytes of data: 3 L8 i8 {6 h& S. I. X
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249   {6 T0 i1 B9 {0 x
    Route: 202.107.208.187 ->   f# ?% e+ w; a$ c
    202.107.210.214 -> % z3 G9 Q  }6 u! [, |
    61.153.112.70 ->
/ ~( U  t+ j6 k# p$ M, W: H    61.153.112.89 -> / [0 y1 w! ^, M' i* p) B5 R
    202.96.105.149 -> 0 R) _5 V1 M7 K- L" s$ j
    202.96.105.97 ->
! \! k5 _$ L0 r7 f5 Q    202.96.105.101 ->
& Q+ v( c8 f5 `    202.96.105.150 -> 5 h5 M" [+ l" w7 G# m1 L% ]  N# J$ z
    61.153.112.90 ! `' |% n4 s0 G* s
/ Q" Q0 S# j% W# \1 G$ @9 i, k
    Ping statistics for 202.96.105.101:
; N7 a+ C2 {( i7 a: m9 a    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 4 D3 `- B  a1 d
    Approximate round trip times in milli-seconds: ; x1 u8 ^: Z1 D8 {
    Minimum = 10ms, Maximum = 10ms, Average = 10ms
; b- d  H0 {7 \" F3 L/ R
4 Y$ }1 ?4 o1 F+ X    从上面我就可以知道从我的计算机到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这几个路由。
0 o. S+ U  z( w# N, C3 m  R* x+ ^, Z5 q4 w$ k# k/ s! |
    -s count Timestamp for count hops. ( v. D. V+ p0 o7 F% q
    指定 count 指定的跃点数的时间戳。 : d1 F( p' ^& v# z. Z' P
    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
1 \7 ?4 e" y1 m+ R; V8 M    -j host-list Loose source route along host-list.
' h) o' j; [" Q$ |2 a- \利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
7 t3 E) @# z* a9 j5 B, |
( R2 w8 E, }/ z* y    -k host-list Strict source route along host-list. 5 @) r% n$ r" K
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 # o4 k+ p( ?" s9 d5 H
    -w timeout Timeout in milliseconds to wait for each reply.
& j: g7 b7 n+ l& G    指定超时间隔,单位为毫秒。
: P6 X5 [+ T" q+ l- b  g$ C    此参数没有什么其他技巧。
6 @! R6 s: F" W" j" @2 [
. d& f% X& m( \5 @  I& B, }! n0 w    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
$ h( \8 x/ ]* w' P# U# {    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 3 ]6 |, V. m2 Y2 `
    "DefaultTTL"=dword:000000ff 1 J* l! m( |4 a( W- A/ D4 k
    255---FF
# J( A9 t1 U# n) w  H1 e; S: s    128---80 0 G4 i9 T7 a, S& }1 u$ v6 ]
    64----40 , @9 b4 Q' @9 i1 P
    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-7-16 10:24 , Processed in 0.023001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部