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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-1-18 10:57:08 |只看该作者 |倒序浏览
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 1 n, e$ U0 l- ~* l
7 [6 c/ _- f+ A4 ~7 V
    现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
" e8 m7 t% A* s8 {9 X- o7 Z/ Q9 I3 _) E; l+ W
    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
# i7 x; [$ B# l# ~9 X" l( K% ^0 E: \% }+ t
    Options:
% _+ g. [1 {0 O) l    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. % C0 b+ b/ Z. k0 [5 ^
    不停的ping地方主机,直到你按下Control-C。 ) \' J5 B. A1 }0 b' k9 |
    此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
* K) A* m- z0 g; y    -a Resolve addresses to hostnames. / B1 b8 b& h. v1 Y: B

; G- ]+ c3 S% `3 J0 U7 @' D) W    解析计算机NetBios名。 + j- `5 `5 d% h% u( N) o  [

* E- P9 {% R; }* {$ v    示例:
2 j& q- W- g* K" G# f
: v3 f# `" e6 e8 c    C:\>ping -a 192.168.1.21
  g7 O6 Q* Y/ f& f) p4 _6 V  B" L5 z0 o    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
" w6 H- a5 l6 J8 m" l* b. Z- Y0 H    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 . O* M; Z; O* \# s
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
4 d7 A8 ?2 `" C    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 h6 h( ]$ R7 V& E: i/ J1 U3 W    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
. P- K# }) X1 }' H    Ping statistics for 192.168.1.21: % k/ k7 W$ y" R$ @
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
/ F) Z; D: \' W; A  H& k0 f9 `. F' S! ?    Minimum = 0ms, Maximum = 0ms, Average = 0ms
: t9 b2 h# o5 Y2 K; T    从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ( b$ e* A& g; w

$ U, B/ n& ]( t    -n count Number of echo requests to send. - u. n! F3 `! C  S/ k; E  E& e+ x
    发送count指定的Echo数据包数。
0 J1 a4 D1 K( [! ?0 s/ r7 ]* |" k& d4 P4 n. `, J1 Q" E2 z: D
    在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:- r) u& m! _  m& u3 D  G) {

: ]8 r1 C8 g$ \9 d    C:\>ping -n 50 202.103.96.68
2 a5 S* e  ~7 r/ G" w1 h7 D    Pinging 202.103.96.68 with 32 bytes of data: . C- B6 z/ D* q) L+ B" b
+ v$ u' D/ p0 e' Q+ k  P1 _- d# W
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / E" Z/ M. w4 B5 W2 \
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ' _& A# p1 ^7 [
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  ^8 U, d& w2 l3 w    Request timed out.
( t6 C3 T& F8 \6 \$ g0 m3 A, D( E    ……………… 8 B: |7 l" T  Q

5 ^2 T6 |0 v( G; o) T9 U4 n; a    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 " o' k' K7 U( J# r+ T
    Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
: @% ~' B# j* z! u* K* |    Ping statistics for 202.103.96.68:
. j5 @# }* u7 Y$ P( G$ ?8 s. b* |    Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 1 f* p2 N  }* a
ound trip times in milli-seconds:
7 g& F7 S* R1 z    Minimum = 40ms, Maximum = 51ms, Average = 46ms
6 ]/ p4 \' j3 U8 O! Z
0 s* g! O4 v6 ^2 W5 [0 ]    从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
9 k* B* ^* D: ?; f: n. ^3 G! Q, K    -l size Send buffer size. 定义echo数据包大小。 % n8 l3 e2 G8 q- i. M8 Y/ F" r+ X

5 e" N2 _* c8 N- {+ I/ V9 ^    在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
# K* }8 M2 L1 |/ D8 H& q) b5 t/ }1 z2 q# z* q; [5 u" \
    C:\>ping -l 65500 -t 192.168.1.21 2 i1 _" m% T4 `6 y) e
    Pinging 192.168.1.21 with 65500 bytes of data:
# a3 s2 I3 s& r$ m) \' X9 D& A    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
1 P) R) _- _5 j! q7 t  S    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 2 z$ ]) M) Y1 t. G+ Z$ T6 x
    ………………
6 }7 V" Q) ^* Z% r, L8 K- \# P) P& u+ p  m: ^
    这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 4 x1 j% Z% _0 |% E
' q! q5 l; n8 h% D- J% j
    -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
" O, [' G: g$ i3 h( n    在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 + V4 \# s; Y  U+ K
    -i TTL Time To Live.
  n7 C% p3 f0 Q. s    指定TTL值在对方的系统里停留的时间。
$ o6 n4 G' O& |# J: L% X* }    此参数同样是帮助你检查网络运转情况的。 ( [- h* D; B+ F' D/ m$ c, w1 z
    -v TOS Type Of Service. ! y. L, g# O) O  S' ^
    将“服务类型”字段设置为 tos 指定的值。
+ ]7 M/ E; ]/ ~& n% ~5 ^$ i    -r count Record route for count hops.
* r6 l  T5 C( C    在“记录路由”字段中记录传出和返回数据包的路由。
" Y' t0 O) t5 y( c
4 Y$ E3 ]5 K6 m    在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
8 K. i5 N3 @$ M3 d% S    C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
0 A# R! `! V3 N3 i8 F' W
# H! v: u" U4 \' A    Pinging 202.96.105.101 with 32 bytes of data: ; f8 i3 z: J7 t* p9 F
    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 1 z- |5 P( D, g' G$ ^4 |
    Route: 202.107.208.187 -> ) y' ]9 I. ?6 v# X: L
    202.107.210.214 -> 9 F, x! v: ]; L7 e0 E, \
    61.153.112.70 -> ' C$ F' Z4 F# h$ H( I
    61.153.112.89 -> 1 ~, M" J8 l, f3 g5 A5 `% c
    202.96.105.149 ->
. J  @& W: ~, }4 p# e# ~3 F    202.96.105.97 -> . X, l! }0 o' o, b* g1 I9 J
    202.96.105.101 -> 9 |9 Y; v5 a- p
    202.96.105.150 -> ( {3 M  F1 h2 F8 i. k0 g
    61.153.112.90
( ^# t% W2 I2 t; u( i, z' o8 M
  Y9 y+ L# y) Q0 r! v, n' |3 L, P    Ping statistics for 202.96.105.101:
  o& u0 J- ~5 A: y; B& D% `    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 3 g6 A. v2 r- u
    Approximate round trip times in milli-seconds:
  D5 a3 |, r1 A, B  \/ `8 `    Minimum = 10ms, Maximum = 10ms, Average = 10ms . L+ N, ?* E6 Z9 j% [- h2 V1 R# s

+ i  L$ u) a* ?" 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这几个路由。 2 F) z4 j3 E7 q; U7 t

5 C+ o& O; X% u/ {- p- f    -s count Timestamp for count hops.
1 s3 A" ~# L) r- Z    指定 count 指定的跃点数的时间戳。
) _& N) n1 l  y+ ?    此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
* l+ g2 X. t( B9 }* ~    -j host-list Loose source route along host-list. - R- N/ d( O/ Q+ X3 X4 a
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 2 o9 G1 e' k9 I2 S5 d

( Y( M* B# R0 V    -k host-list Strict source route along host-list.
; M( m9 R& ]9 H3 W/ F0 [& }利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
( O2 l. S: ]4 d# `    -w timeout Timeout in milliseconds to wait for each reply. & L; m- s0 m! Z+ }
    指定超时间隔,单位为毫秒。
, ^, ~" x/ W5 e8 N6 J5 x' ~& k    此参数没有什么其他技巧。 1 ?4 R$ l' R$ I: K  q2 D

9 `: n8 \( K  V, i$ M+ G6 K" C# ]" c) [    ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:" C5 W5 ~' T1 [% I$ |1 R+ N
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
2 b/ f: z2 P4 l3 n* G; f    "DefaultTTL"=dword:000000ff
/ d) c) o7 A8 ^- J    255---FF
$ F& {4 H1 f" y( R9 ]    128---80
/ \; f! o: Y4 L8 e- d! u) q    64----40
" l# n% \" F$ {3 K    32----20
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-7-1 18:31 , Processed in 0.022001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部