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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。   j5 T! v) |" L. V  q# L0 M  A9 _

# }0 `) S" p% r: ]3 [    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
4 ~" e; a$ Q4 r8 P/ p" E" c  C1 r: Q/ b  ~1 U& F' h" p' G& \+ e
    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-list9 L" [2 }' @- {% a

6 I& J- O% q. N( f1 D    Options:
. [; y0 W: O! B" `% T    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
! \" {9 K: Y( @1 ~# n$ i    不停的ping地方主机,直到你按下Control-C。 5 f, o0 ~( `8 m; |% J3 k8 ]$ @" ]) O
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 ) @  H& E5 G- V
    -a Resolve addresses to hostnames.
& R7 ?8 j4 a4 `- u' G* Q( n+ ?! C" ?
) a; J* Z3 C, C8 E8 P: q; p    解析计算机NetBios名。
/ b( s: D, k. @' e. g9 M' R
5 ~$ j1 _% H& \0 }3 Y. x/ C. P4 K    示例:
9 V' J7 \9 V6 o8 s+ n0 q  e. Q: v$ e4 f
    C:\>ping -a 192.168.1.21% F- V" I* q4 y& O, h9 T
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: . f8 p2 k2 P% F( N  R/ Z# O7 ^
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 - K9 X; A' o0 a# W9 {. ?0 F
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 4 F" I( f/ @. \2 ^
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
5 o; @# C8 O$ V0 c. X# P    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
: w* G, J' s9 Z! ^/ R    Ping statistics for 192.168.1.21: . e' P1 j7 N6 h+ Y  T8 z
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 5 @4 J: e+ R  n1 {) o0 x
    Minimum = 0ms, Maximum = 0ms, Average = 0ms ! N$ D. T" D- L5 S/ V
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
' g4 g0 e$ H3 p% t
0 @" s9 H1 ?% W2 q$ [$ M- ^    -n count Number of echo requests to send.
6 g2 X1 y4 d5 o4 }    发送count指定的Echo数据包数。
4 G, h( l: A9 ^, e; q# a
6 ~: I& [# ^7 b+ j0 l: `    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:0 N6 x2 q/ @/ u: z+ K

. U  S, c$ v4 l+ M! H6 ]    C:\>ping -n 50 202.103.96.68
1 \4 I9 i% Z9 _; ^    Pinging 202.103.96.68 with 32 bytes of data:
8 ]( J1 I$ A5 g, r  ?; z& Q2 e* W' X3 ^. ~
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
' U$ l' ]. a+ F" x$ r    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  ^0 j4 u/ a; G/ K" G5 ^    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
. J9 ~& s9 Z1 o) B* V1 t5 d    Request timed out. " U  _" e' v3 q) L3 W% U/ q+ f
    ……………… # H+ L% W8 a; D  ], S4 v% ?7 t

' Q" L0 L4 o" a& B) V' r4 {    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
0 V% I( n8 V6 F9 m7 b+ d' V    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
8 K4 q5 {3 t; w( f8 J    Ping statistics for 202.103.96.68:
; t- p) a' K3 X9 w9 \8 V. ?    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
9 @* Z% c  u/ d* found trip times in milli-seconds: 3 o$ z8 q1 W4 g/ J( n
    Minimum = 40ms, Maximum = 51ms, Average = 46ms
7 ?- C1 I+ G- Q2 u2 n* }* W0 I8 o/ l) v( n" P4 o( f8 f
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 5 B& F$ x% b4 P4 g
    -l size Send buffer size. 定义echo数据包大小。   B& Y! G4 p3 L# @  n( j. P1 o1 C4 m
6 x' m* w7 f5 _1 U9 F' {
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)& f# A0 X9 Q4 F  {
9 X( z9 I8 ?8 c; v3 b5 M
    C:\>ping -l 65500 -t 192.168.1.21 7 W* p8 u0 {. y; P$ O* m
    Pinging 192.168.1.21 with 65500 bytes of data: 1 m8 r+ F& S' y: |1 Y6 ]# M
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 # x0 x' j. Z% K5 W9 J3 j
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 6 K/ V8 Q) j$ m$ _' q
    ………………
  a6 t) n, O: x5 N( O( F) U' S  w! j; m' Q! h8 g: J
    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 / I* j" i( G. M3 h7 n6 z  p
  h6 x3 z$ C( \: g7 V. G6 _/ K% c9 y
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 9 F+ `$ M5 g. u9 z
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
: i# e  ~5 |0 o8 S* l    -i TTL Time To Live.
. b$ R) T  z6 U* a9 _    指定TTL值在对方的系统里停留的时间。
% U) P1 |9 W- ]) p7 V1 a$ W; x    此参数同样是帮助你检查网络运转情况的。 . l! T( b) N& y9 G3 U1 }. c
    -v TOS Type Of Service. * u% l$ a4 ~4 _  l- \
    将“服务类型”字段设置为 tos 指定的值。
3 @3 Q: D# J4 Y# s2 o4 X* d  r    -r count Record route for count hops.
$ x4 k8 @1 n$ K5 S3 C    在“记录路由”字段中记录传出和返回数据包的路由。 1 s4 y8 G$ w, x  B

& {' p# N4 d0 o$ S    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
; t+ \: i* L! y4 t- d    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) & T% B) X. m8 G* _4 u+ a3 {' o
  z3 K/ L  U5 u# w( I
    Pinging 202.96.105.101 with 32 bytes of data:
* B% A) B$ Y  a' B    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
# p; X, m' q: O4 S& Q: d    Route: 202.107.208.187 -> , w- R* l7 v$ {# z# K& o
    202.107.210.214 -> 8 M8 m8 U% s5 `9 P
    61.153.112.70 -> : v8 q: E+ T6 ?& m: B* _
    61.153.112.89 -> 0 e# i1 Z: C- h
    202.96.105.149 -> 5 F' {- P: `. t0 A3 a) |+ E, ]1 X" l( C
    202.96.105.97 ->
4 @" _3 N7 O/ G8 }6 l8 E- D; u# V    202.96.105.101 ->
1 S: I: p6 G3 k' t! X" G    202.96.105.150 ->
  e: B  X  g0 I; S4 F9 p    61.153.112.90
* S9 J; ]2 u; R
4 J4 d; r' f' ?6 ?/ ^    Ping statistics for 202.96.105.101: 3 p7 a, u! q( O  H: \5 K
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), ' @& e) S: H( o# G. Q# d: Z
    Approximate round trip times in milli-seconds:
' K% q2 A1 u: L& S# w2 A    Minimum = 10ms, Maximum = 10ms, Average = 10ms ) A; r" L5 N( N# l2 _

( D6 {' M$ G; M- y/ T$ ]    从上面我就可以知道从我的计算机到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这几个路由。 * v" B6 g6 N; h. s4 N+ ~' `

' i# i' G0 Z; J+ A& D8 g    -s count Timestamp for count hops.
7 s; E6 P2 \9 G% d0 J! Z    指定 count 指定的跃点数的时间戳。
2 M; E3 X( Z( B  A    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 5 d, r/ ^3 t* w4 H7 D; `; s9 u
    -j host-list Loose source route along host-list.
$ j2 D1 w* Q; e% z利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
8 d/ W$ a1 m# d# T% J( L# ~/ X4 |8 S* v% [3 x, n1 W
    -k host-list Strict source route along host-list. 5 K" n% w2 e+ m; Q2 s  U: z
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 , y) u3 W( ?" o7 `
    -w timeout Timeout in milliseconds to wait for each reply.
! P& `) `; M5 x# a0 A. d    指定超时间隔,单位为毫秒。 ) W  J0 ^6 y* c( x" i
    此参数没有什么其他技巧。
" c7 ^+ s9 Q) f% g% o* y" B9 ^5 g% e, ?% W
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:5 Q% I0 c, \! p* P9 [7 y
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
* \) P. K2 v0 K    "DefaultTTL"=dword:000000ff + C& N+ G9 C$ G5 \
    255---FF
( z3 R$ a4 ~* B, L    128---80 + O$ p$ V, g( c. p
    64----40 + M) A) m- }9 M( T( `
    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-10-4 23:40 , Processed in 0.023001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部