PING命令的高级用法

Kiver 发布于2004-8-16 07:42 738 次浏览 9 位用户参与讨论   [复制分享主题]
<P>  对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 </P>
+ c  B( ]2 v1 U( m9 \
" U$ u3 Q) p  I6 [* m
[此贴子已经被作者于2004-8-15 23:44:03编辑过]
% z& X9 ^7 e( {

已有(9)人评论

Kiver 发表于 2004-8-16 07:43:06 | 显示全部楼层
<P>  现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:</P><P>
# k0 m( C& z, X" j) T+ F! Oping [-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 </P><P>! {' Z6 t% W/ n  ~+ K
Options: </P><P>
8 S5 y1 n5 H% [- v) R4 D; o-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. </P><P>
* a) j/ ]6 D2 z6 a* A不停的ping地方主机,直到你按下Control-C。 </P><P>此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 </P><P>-a Resolve addresses to hostnames. </P><P>
7 f. q8 c4 ~8 E- x9 y解析计算机NetBios名。 </P><P>
2 y/ \# l; o; C; a. G示例:</P><P>C:\&gt;ping -a 192.168.1.21</P><P>Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ' o' G- k. b- ~$ ?& Q
Reply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254
. }8 I) ?' `6 N" ^Reply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254
+ V! j, }4 o: ^7 M* ZReply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254 / ^) Y( [5 D" N+ u
Reply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254 % p& b0 V# ~& A" S7 `
Ping statistics for 192.168.1.21:
7 C" ^% }. Z* d6 p/ Y- e3 p+ n; x0 VPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: 4 P  o$ {- K1 c1 E1 _+ ?
Minimum = 0ms, Maximum = 0ms, Average = 0ms </P><P>从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 </P><P>-n count Number of echo requests to send. + Z9 Q0 F% {+ Z! J' u2 b
发送count指定的Echo数据包数。 </P><P>  在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知: </P><P>C:\&gt;ping -n 50 202.103.96.68
1 ~$ k- o) C2 S8 l" jPinging 202.103.96.68 with 32 bytes of data: $ O5 z2 a% R2 `+ p+ s. d; t% G
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 0 H1 q, d1 A+ \! P5 }7 a! U: f8 @" O0 D
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
& y( W3 _4 P0 L8 T0 s3 IReply from 202.103.96.68: bytes=32 time=50ms TTL=241
; N3 h2 e- h1 L3 v: X; oRequest timed out.
1 f7 E8 d. [# ?: g……………… , J: n5 w. }& ]7 ]
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ) E8 V' v6 D8 I2 ]9 U6 L1 P. T
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
" N; Y+ n$ c2 PPing statistics for 202.103.96.68: ' ~" e' `: A# F3 Q9 p- ?
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
% S; o9 c+ X* F* QMinimum = 40ms, Maximum = 51ms, Average = 46ms </P><P>  从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 </P><P>-l size Send buffer size.
% _/ I$ b2 W" z, ~: I% U2 u+ m* C定义echo数据包大小。 </P><P>  在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)</P><P>C:\&gt;ping -l 65500 -t 192.168.1.21
" M9 X! H3 `4 ]Pinging 192.168.1.21 with 65500 bytes of data:
. _- o* b& L; a+ N: X0 O1 c9 oReply from 192.168.1.21: bytes=65500 time&lt;10ms TTL=254
- [$ j' B7 q2 a. h: KReply from 192.168.1.21: bytes=65500 time&lt;10ms TTL=254 " `2 }8 w& l; w& P  @0 i3 W
……………… </P><P>  这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 </P><P>-f Set Don't Fragment flag in packet.
  g$ k( H, v8 ^: J在数据包中发送“不要分段”标志。 </P><P>在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 </P>
Kiver 发表于 2004-8-16 07:43:25 | 显示全部楼层
-i TTL Time To Live.
( ~& O$ {' F1 E' I& P# b5 j5 Q指定TTL值在对方的系统里停留的时间。
& L' @( z- F1 J8 W; D7 l- @( F* l+ w9 M此参数同样是帮助你检查网络运转情况的。
* u: G& _3 i, I$ O: e<P>4 x: @3 |6 q6 t0 o0 m0 S* p. }
-v TOS Type Of Service.
* [" T2 S0 g7 V将“服务类型”字段设置为 tos 指定的值。 </P><P>-r count Record route for count hops. ; v, d/ j9 v3 w
在“记录路由”字段中记录传出和返回数据包的路由。 </P><P>  在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: </P><P>C:\&gt;ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) </P><P>Pinging 202.96.105.101 with 32 bytes of data: </P><P>Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
" E& R0 _- ]0 b2 R. SRoute: 202.107.208.187 -&gt;
6 w+ `  [) ^" @6 N7 m1 m202.107.210.214 -&gt;
- ?& S1 t. l1 G/ Y" b61.153.112.70 -&gt;
+ `5 I; j( E6 @) `6 I61.153.112.89 -&gt; 6 s3 u+ D. a6 H- z7 n, S
202.96.105.149 -&gt; 8 z# y) U" @. b( j* q) p$ d9 [
202.96.105.97 -&gt;
5 n3 L$ b- b) {! d  J  `202.96.105.101 -&gt; % e. e+ W$ ?; P9 A2 }; F" |
202.96.105.150 -&gt;
0 g, n/ z8 u8 K4 V* `61.153.112.90 </P><P>Ping statistics for 202.96.105.101: + X- j) ~: e6 L1 w% ?/ p/ ]! }2 S0 C
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
8 b. m0 c! m7 @) uApproximate round trip times in milli-seconds: ' ~. N9 z( W! U4 g. B5 J& ?- A
Minimum = 10ms, Maximum = 10ms, Average = 10ms </P><P>  从上面我就可以知道从我的计算机到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这几个路由。 </P>
Kiver 发表于 2004-8-16 07:43:39 | 显示全部楼层
-s count Timestamp for count hops. ! F, B: S% Q; d3 i! Q
指定 count 指定的跃点数的时间戳。 <P>此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 </P><P>
" o/ |0 A6 d5 L1 `( d-j host-list Loose source route along host-list.
- R( Z7 \0 T9 P7 C" F利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 </P><P>
) T, A) j" i# k( ?2 K-k host-list Strict source route along host-list.
( ?/ v0 v% k" [利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 </P><P>* A8 u$ e* v, p3 X. B2 e9 ^2 M: b& k
-w timeout Timeout in milliseconds to wait for each reply.
, x7 Z6 Q/ H# G& R& k! O指定超时间隔,单位为毫秒。 </P><P>此参数没有什么其他技巧。 </P><P>  ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:</P><P>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 8 J0 o$ |8 \0 k
"DefaultTTL"=dword:000000ff
- D- E$ n  G: _# e255---FF
: s3 X( l, @0 A7 a9 U- e  D! p* F2 u128---80 : l$ J: K9 G! \3 O6 ^( U
64----40
* T% V  u& ]) A9 B4 V32----20 </P><P>好了,ping命令的高级参数用法基本上被我COPY过来了,有什么疑问欢迎提出,大家一起探讨。</P>
Phily 发表于 2004-8-16 08:49:07 | 显示全部楼层
<P>哇,晕了``````</P><P>平时跟本都不用的技巧</P>
翔空 发表于 2004-8-20 03:33:18 | 显示全部楼层
看来只有黑客才会用到……
vinsent 发表于 2004-8-22 10:33:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
酷Baby 发表于 2004-8-22 22:54:01 | 显示全部楼层
呵呵~`对我们的帮助很大。但一般很少人用这些吧!
keisuke 发表于 2004-9-5 23:57:46 | 显示全部楼层
哇!经典啊。的确好有用
lurenjia 发表于 2004-9-21 09:05:27 | 显示全部楼层
<P>受教了</P><P>多谢楼主哦</P>
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

快速
回复
返回
列表
返回
顶部