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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
. M" C1 l6 H+ u. j1 g2 N+ F9 ?# ?4 D9 N+ U- W1 M- c( U0 k1 a6 A, F
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
" [' D& ^7 V" r- P# M5 @5 x8 v1 ]5 i* P5 _
    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# l# r  v  [) |% b
- ^% k3 }* U- [( ]3 g# k
    Options:
; v1 w* K( u$ J( n! `    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
. @7 s3 w2 a2 O+ ]$ ?2 n/ G    不停的ping地方主机,直到你按下Control-C。   Q4 z  y* V1 }% C# {$ Y
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 ! a7 F* H( j7 h+ C1 X5 d
    -a Resolve addresses to hostnames. 6 P+ z/ ]. _1 J5 s- _5 O
" C; w7 r+ k  |0 o4 m) |/ \) u
    解析计算机NetBios名。 . d1 s5 B  N" k& b- p

, z% R" m* |' |$ w0 i0 I    示例:
2 a/ g7 B6 L- w& E1 o; ^6 \% Q' B1 c& h; u' J2 M! [: A& o
    C:\>ping -a 192.168.1.21# s5 u+ P( g: L: @% X
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ! d7 S8 [0 }$ q* c" F7 u
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
. S5 {: F0 \* T8 Y    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
% T& J! v4 X% M& L) Z    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
0 J5 P4 y3 H# R    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
( i% {0 p: J( U3 H( T+ s5 b    Ping statistics for 192.168.1.21:
3 M1 ^$ P! Q4 p; w4 j    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: ( }# M2 [$ w7 @5 F+ J8 k( Y
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
6 x2 n0 Z- D8 V0 k    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 4 V! F2 R* w  c% \. U1 ~3 o

" C& h: J& X1 V& ^    -n count Number of echo requests to send.
( w' l# O. x" e" j    发送count指定的Echo数据包数。 4 @0 v% F2 o- x2 [% ?- U6 Y
$ k4 Z7 Y1 G/ x" x% W7 K
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
+ s; n0 B* P  c6 U4 k( Z" Q9 z: x# Z1 S& ^+ E$ ~
    C:\>ping -n 50 202.103.96.68
. J# Z- _3 m4 ~; ]; S9 u# S    Pinging 202.103.96.68 with 32 bytes of data:
. s  G  k" E  p# V0 n
6 y( E! `3 w6 ], r; B# @% T" V" u    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
% X) T4 I% e8 j# u    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 C, z  N7 r. L6 j    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 - ^6 {# b: K7 G" @% b5 M
    Request timed out. * p4 t. A% v1 S4 a  P# ?
    ……………… 6 ]6 i% B5 u  T8 `* ^3 W0 y
& c2 x+ P! k- N' p* ]
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ' `/ s" |4 f. s& P. ~
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
3 G8 W1 a- O8 p, q- X    Ping statistics for 202.103.96.68:
. ~( ^1 y2 b" B    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
3 l$ W) O: S$ r' h2 v; Qound trip times in milli-seconds: - t$ t8 T# @" H+ ~' Q! l) }: G
    Minimum = 40ms, Maximum = 51ms, Average = 46ms 2 N8 n1 Y1 k7 Z6 s
9 Q( k1 S' x, i6 a( s
    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。   q' C1 h, H% D; j2 J
    -l size Send buffer size. 定义echo数据包大小。   b" T0 P2 q. Y* y# L' V
6 p% v2 \8 c, L7 x$ t! T+ I5 a
    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)# U: T  [. F4 M4 O0 [
$ i  ?7 i+ g: C# ~* e5 w2 b' \
    C:\>ping -l 65500 -t 192.168.1.21 & a5 \2 ]7 u, g) K
    Pinging 192.168.1.21 with 65500 bytes of data: 4 H+ v  H% w. u" ], O5 s9 f
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 * h7 D2 a2 k5 G
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
/ X- F6 U6 U* g    ………………
, w; Y3 q6 \+ Z  _8 r: C$ ^
6 k$ B3 r  ]8 _9 d* X    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 ; W4 F5 d: k  p6 c9 P
  t- ~: |1 s! Y+ @% V
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 : ]9 U6 V& ^+ S% [! |8 D9 R- r6 I8 z$ G
    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 & t( v5 h/ c0 P  `7 ^6 j
    -i TTL Time To Live.
% [, p, l. Q( z( X    指定TTL值在对方的系统里停留的时间。 1 @+ t& S. H8 V* c: j
    此参数同样是帮助你检查网络运转情况的。
2 O) H  x: w) G9 p" F! X; a    -v TOS Type Of Service. ( {4 h8 v& L& c5 r
    将“服务类型”字段设置为 tos 指定的值。   i& `) ?  O! b  i: R  z) m' Y3 M/ \8 h
    -r count Record route for count hops.
* Q8 D6 `# K" ?    在“记录路由”字段中记录传出和返回数据包的路由。
' ~' K+ }8 b# F' ~. r9 X+ R1 R6 z" a  m3 Z
    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: - N' Z. ~- ?) ~/ q$ B7 r
    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
* }% w( `  r3 M0 o; Z, D: k  g, A; L$ g/ W, W( ]2 W4 o3 z
    Pinging 202.96.105.101 with 32 bytes of data: * X  \+ R$ a( p4 e) q1 S% M
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 - e: ~8 P% `8 n
    Route: 202.107.208.187 -> 5 d* J: o7 z6 O& a% Z) F, V
    202.107.210.214 -> 2 C6 f3 Y8 E+ n0 y, \
    61.153.112.70 -> * ~2 @0 g6 U& ~5 Y: w
    61.153.112.89 -> $ n: `) h; R( ]9 l+ I# X, _
    202.96.105.149 ->
* M/ o- F0 F* O5 q' N6 Y2 f* M+ l    202.96.105.97 ->
# Q* Q: f+ @. `4 G* q    202.96.105.101 ->
1 r$ G/ A8 d, @* |: w3 X    202.96.105.150 -> 2 J* d& \* X( W6 T: H: s3 ]) _+ |
    61.153.112.90
+ y8 j4 x: I) {& p
. _1 u+ D/ j) S# N. s: P' z5 H1 W+ P    Ping statistics for 202.96.105.101:
/ Z; h; u' ]/ S& j2 _    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), , G, u# P: w8 C6 a* w1 X
    Approximate round trip times in milli-seconds:
+ Z' I$ z3 A3 G# u    Minimum = 10ms, Maximum = 10ms, Average = 10ms
% d( ]% m$ k3 `) c- V# P6 V( V7 K8 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这几个路由。 * K; N; r+ V, q1 t
% a$ @5 J3 Q5 q. w0 {  T; U
    -s count Timestamp for count hops.
- X1 h9 w3 u4 ?0 K% r. y    指定 count 指定的跃点数的时间戳。
$ Q  v! q& f+ K) e  y    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
, |' b5 D+ q' ?: `    -j host-list Loose source route along host-list.
# r7 N% N* x+ s9 T3 k利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 5 |" T2 O+ C4 w% w7 I. I# O
- d. R5 Q. _# G+ L! P$ `2 m1 F* z. {# p
    -k host-list Strict source route along host-list.
3 R/ ]3 {9 t9 Z6 ?; B2 a+ m& t* I4 z利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 $ b& z. y, |1 R8 O+ @
    -w timeout Timeout in milliseconds to wait for each reply. ) |7 c- x+ [6 ^/ s6 Y. }" a! O
    指定超时间隔,单位为毫秒。 ) I  e% B! e) C* p$ r
    此参数没有什么其他技巧。
6 C% ]/ O( K2 \9 x2 F- z9 Y/ s: ~5 Y- }* t8 K
    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:2 E5 v6 Q& z9 q6 S4 b% P/ `
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] ; s/ w- D& j* h$ \9 G( Z! x
    "DefaultTTL"=dword:000000ff - M" x, Y. c$ r+ [' i" g1 t
    255---FF % @% |. o* `% B) ]0 [1 V
    128---80 7 b( `1 J% h' _" i- N$ V$ b8 i
    64----40 $ B- d4 ]3 }# }/ G
    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2026-2-3 16:13 , Processed in 0.022001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部