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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 9 [+ l6 i2 j/ w. ~1 b2 P" t- v, w7 c
  t7 l5 B8 R- D1 @  u
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:+ C* z3 ~) k# u- H

; X  d- E: w5 s( z5 L0 k# y    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
' \/ k/ a3 }6 y/ |0 g
2 f4 ~/ Y2 l: U' i) b7 P    Options:
2 ?' Z. j7 Y& E  m+ k5 Q, r1 ^1 q    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
: ~% H+ m) f6 u+ E. Q    不停的ping地方主机,直到你按下Control-C。 $ J: g/ u) u& i
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 / g" \3 {  H+ L
    -a Resolve addresses to hostnames.
! R4 t( S2 \3 L# C$ B
! i/ T/ Z% p+ M% ?& N    解析计算机NetBios名。
6 ~. O, P7 m% k1 J1 ?4 B3 W* }) J* Q  c  l4 r
    示例:/ ]6 H! E$ x0 D0 n9 e- d* a

9 |& C" M# h5 t- w! A; k    C:\>ping -a 192.168.1.21
9 V$ E1 i) Y/ \    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: 9 `* f0 j- D' A4 C: j
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
! U, K. T  n/ n6 ^    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
+ J" X: w8 N- L9 w  K  ?' ]    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
, R. J( j' a0 U2 M    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 0 O9 ^# \1 z1 W) B$ X) ?4 O6 C
    Ping statistics for 192.168.1.21:
, |! v. d! X* w2 S& v    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
  E, R, o; ]' O  d* V    Minimum = 0ms, Maximum = 0ms, Average = 0ms / S& `( {0 S# @& R9 E6 `7 N0 Z
    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 7 o% |2 q4 E8 F3 h0 O& x8 e( N

% [  Z  G7 ], L! @5 P/ O% k$ m    -n count Number of echo requests to send.
9 F, Q+ V: b) k3 W* h! w/ R9 v! Q    发送count指定的Echo数据包数。
0 Y* v& {& f8 s0 `. X* L7 X$ Y0 [
% Y- b2 i7 {% }2 k/ K    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:! h% ]) K7 |% g- O* Z5 Q

; R  h' m+ H3 p8 k) H! j    C:\>ping -n 50 202.103.96.68
) D/ l/ q) P- }# [2 q    Pinging 202.103.96.68 with 32 bytes of data:
4 e4 O$ F* \& z/ j- `; a7 g# f# O9 }  y1 H
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 2 {$ \" Y+ V) F3 Q
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
. e/ s' B) r7 r8 i7 r    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
6 m) s! p) X4 k    Request timed out. * Q1 f5 v# N* c% M! v3 B/ l
    ……………… 2 h4 C2 ~4 U$ o, y& `' [
' A3 m4 @  {& \6 X3 d) o* l/ E; w
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 9 E" t+ R0 j3 e* ~/ s8 q
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 8 s' F6 B% B$ T! V$ E5 ]( h
    Ping statistics for 202.103.96.68:
0 F7 l- T) R- L) ^4 r    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
0 C4 i1 P+ w+ o2 i; ]1 dound trip times in milli-seconds: 0 T6 z" M" @7 t4 S6 \
    Minimum = 40ms, Maximum = 51ms, Average = 46ms
2 L, R' r4 F. P& G* @0 }6 x2 s, M5 E3 t7 i- B2 e
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 ; y: g# C& K! F4 M
    -l size Send buffer size. 定义echo数据包大小。
4 V- _5 L  M$ t7 B" a* ]9 i. e0 ]& l9 R3 E5 s1 N
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)- D& F; C. d7 @0 w, n
! i6 n% S; Q2 ?7 _1 j; T% s- X
    C:\>ping -l 65500 -t 192.168.1.21 # V* ]4 W: K) v( z/ i2 Q
    Pinging 192.168.1.21 with 65500 bytes of data:
  U( ~5 t0 q0 T* E- {    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 & G6 R( P! \( a
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
' l; D2 q. `5 @( A8 |    ………………! Q# V( c( F6 i& z7 e1 q2 O: s

5 P* L1 g* q4 r( j' w# A8 g    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
2 O( Q$ m6 ?2 s) i9 _* A8 \+ ~0 x: B! ^7 D2 Y& j9 Y
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 . \( T  p; \0 ]2 Z. ^9 J* b
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
# x+ H) ]  I# |3 B+ _5 l5 k    -i TTL Time To Live. 0 D8 F& X4 |9 ~! r3 g8 S
    指定TTL值在对方的系统里停留的时间。 ; p; S! @- Y) ~5 c8 x
    此参数同样是帮助你检查网络运转情况的。
7 w* R: e  G9 g6 i    -v TOS Type Of Service. & D4 C' G/ J8 [' O& X, U: ]
    将“服务类型”字段设置为 tos 指定的值。
, L9 n5 L1 |* n4 m    -r count Record route for count hops.
/ s6 x, `3 e9 z- o5 H    在“记录路由”字段中记录传出和返回数据包的路由。
# D2 _, A  J/ Y/ e  p- v$ ^9 C: ?  N
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: 9 J- C& O. [) J" o9 E; f2 w$ z
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) 5 R4 l9 G: t2 y2 R9 S2 t" m# q5 {

+ ]8 v4 F( K, w% R    Pinging 202.96.105.101 with 32 bytes of data: ! T. i* v/ }; Q. K3 B
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
' g7 g' n1 Y9 a    Route: 202.107.208.187 ->
- j( v6 v* d2 e/ [/ t    202.107.210.214 ->
  @! c4 M3 ~7 p$ m# B+ {    61.153.112.70 -> * Y4 Q0 L; z6 L: ~4 Z, x4 {, s
    61.153.112.89 -> 9 k  @7 c) B, J& ]; B
    202.96.105.149 ->
9 t$ M( R5 s9 x0 n0 \; l# H    202.96.105.97 -> 8 }8 E8 c& a/ P$ m4 z8 G! g
    202.96.105.101 ->
9 e5 f3 }7 |) ?% ^! [: ^( ]# D8 A    202.96.105.150 ->
! Z4 s9 X- ]+ [$ |' F    61.153.112.90   i8 b2 Z  W) j, R5 g
# _6 k+ U: j* z) G2 u' [- f
    Ping statistics for 202.96.105.101:
1 A& W4 K. o, P" j    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
( V. [: U  r# w    Approximate round trip times in milli-seconds: ) L. [% m7 i+ L- u
    Minimum = 10ms, Maximum = 10ms, Average = 10ms
* }, B; s+ d  R+ A5 v' ^& q; }& ~; f, X2 t$ w! _5 ~1 ~7 |2 R/ c! H& B
    从上面我就可以知道从我的计算机到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这几个路由。 " ]( q8 J; H2 e# C# z
0 ?# M2 T1 _* Q" m# L3 [1 z
    -s count Timestamp for count hops.
; G4 Z4 x2 [3 I    指定 count 指定的跃点数的时间戳。
2 F7 _* H0 B! [$ K4 e, S& e1 q5 N    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
9 u* c& @2 T9 Z3 W    -j host-list Loose source route along host-list.
5 R  j7 T. }8 _, O& R1 F+ ]利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
& B1 i  l0 [3 ^( \% D% \! g$ i2 s- @; Q! R* z4 u  `% J
    -k host-list Strict source route along host-list.
/ i' J) m$ G( J( X5 T. [利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
" c+ v/ g8 e8 N6 m% N    -w timeout Timeout in milliseconds to wait for each reply. * s+ ], [3 p4 n; {7 r: ^
    指定超时间隔,单位为毫秒。
6 b, k5 y+ d, j  o" w) x. V    此参数没有什么其他技巧。
: h/ z. u# q0 m2 q: G. b3 W+ I7 d6 P$ Z2 S3 E- k. q
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
. l! y& Q: G( U6 ^0 G# `2 F" `    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
5 Q- c% v* K- m. C7 r    "DefaultTTL"=dword:000000ff
. g$ M6 o+ m5 w" z: z# r    255---FF
( O; f0 O: ~* v9 X4 y/ N8 J    128---80 4 T" V+ y( {. W& Q* K# l. z6 X
    64----40 + {7 i2 @# z$ p3 y2 {0 A; ^
    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2024-11-25 05:11 , Processed in 0.022001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部