PING命令的高级用法

Kiver 发布于2004-8-16 07:42 750 次浏览 9 位用户参与讨论   [复制分享主题]
<P>  对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 </P>; g/ N' {1 t, P9 Z: ^2 S# a# W
9 x0 Z8 _5 l9 f9 Q8 w- j( D! l
[此贴子已经被作者于2004-8-15 23:44:03编辑过]
1 E; E% ~% y! z7 b5 `

已有(9)人评论

Kiver 发表于 2004-8-16 07:43:06 | 显示全部楼层
<P>  现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:</P><P>
* e4 g5 v5 ]1 ^# yping [-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>
! e3 Z4 S4 I  W' xOptions: </P><P>
% B2 X6 |$ u7 P+ j-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. </P><P>
- ^/ }# w# |' N0 k5 @0 m不停的ping地方主机,直到你按下Control-C。 </P><P>此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 </P><P>-a Resolve addresses to hostnames. </P><P>  g8 {. `4 {6 H+ V* N; J
解析计算机NetBios名。 </P><P>- |1 y7 m' T- D7 X$ N) u5 [/ M
示例:</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: & c4 b5 \* ^# a: S
Reply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254 % E) z* H6 I/ r! D* Y
Reply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254
) D' r- v( ~% n* ]' c/ xReply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254 9 E5 P9 X' }: i: j: z+ @3 \
Reply from 192.168.1.21: bytes=32 time&lt;10ms TTL=254
6 {( `; n9 R& S: y/ APing statistics for 192.168.1.21: 6 e# x! |) U  A4 s6 d
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
% p- `' c; k; G6 P) l7 nMinimum = 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. 7 f) R  d! H; H% W7 E9 o! Q
发送count指定的Echo数据包数。 </P><P>  在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知: </P><P>C:\&gt;ping -n 50 202.103.96.68
) b  s+ a% `4 MPinging 202.103.96.68 with 32 bytes of data:
8 w' M6 V; p  p6 R' v- YReply from 202.103.96.68: bytes=32 time=50ms TTL=241 $ d, s3 m! G/ s7 C) Z
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
; d& H/ |/ |. TReply from 202.103.96.68: bytes=32 time=50ms TTL=241
+ }4 m4 |+ N0 ], oRequest timed out. & Z5 _) S4 }) r) l5 k
………………
- J$ E( |% r. K% O& VReply from 202.103.96.68: bytes=32 time=50ms TTL=241   {3 z7 K0 U2 x) i6 \& V1 J
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ! [7 |3 Y: r" b
Ping statistics for 202.103.96.68:
! S5 q# x: T2 e: e: APackets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
1 k" I5 g' r7 C1 ~Minimum = 40ms, Maximum = 51ms, Average = 46ms </P><P>  从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 </P><P>-l size Send buffer size.
) d* d' C5 v7 H( s1 a7 k定义echo数据包大小。 </P><P>  在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)</P><P>C:\&gt;ping -l 65500 -t 192.168.1.21
6 c( [" ^: T) M8 APinging 192.168.1.21 with 65500 bytes of data:
0 y' j: `: t0 g- y8 l* f$ U: j  t1 `Reply from 192.168.1.21: bytes=65500 time&lt;10ms TTL=254
0 B! S! J, k& U/ PReply from 192.168.1.21: bytes=65500 time&lt;10ms TTL=254
( {3 \# e1 l. K+ Z7 W# p1 B( ~……………… </P><P>  这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 </P><P>-f Set Don't Fragment flag in packet.
% }! \9 ~: \  z* ?# h/ o在数据包中发送“不要分段”标志。 </P><P>在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 </P>
Kiver 发表于 2004-8-16 07:43:25 | 显示全部楼层
-i TTL Time To Live. . Y2 ^" D3 \% y, @! k  d
指定TTL值在对方的系统里停留的时间。
9 R& j) b3 T% |7 c, a' n) Y* R6 Q此参数同样是帮助你检查网络运转情况的。 ) |3 ^- _+ I8 L
<P>
/ X+ m0 L  \$ s: ]$ Z2 q-v TOS Type Of Service.
4 C3 L) t7 K. t4 H, Y* i; W! N9 M将“服务类型”字段设置为 tos 指定的值。 </P><P>-r count Record route for count hops.
: k( F. U" e/ t- j) Y) Z在“记录路由”字段中记录传出和返回数据包的路由。 </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 % h% i$ i& i% p
Route: 202.107.208.187 -&gt;
; H: J# Z/ i0 o6 A202.107.210.214 -&gt;
. N9 B" k: k) o$ o( t$ `61.153.112.70 -&gt;
6 X% _5 z) F2 r' o% }) R- Y- ?& g, w. X7 D61.153.112.89 -&gt;
% F- h1 m% O9 p( Z202.96.105.149 -&gt;
! a1 Q! t- L8 T  |  R' w202.96.105.97 -&gt; * Q& ~+ v9 O* U& {' u
202.96.105.101 -&gt;
9 B7 }8 o! J/ V: u202.96.105.150 -&gt; ' l& M3 X9 _6 h0 x7 f) s' ^+ v
61.153.112.90 </P><P>Ping statistics for 202.96.105.101: - S/ f! y! v% P7 Q4 D/ Q
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
) b! L! c% G0 R* ^" y5 D' G$ Y7 CApproximate round trip times in milli-seconds:
0 F. ]; J& X: C0 g7 n! U4 O5 [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. # |9 {$ D4 p0 S8 c# h4 {
指定 count 指定的跃点数的时间戳。 <P>此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 </P><P>8 Y( N: q8 J1 C
-j host-list Loose source route along host-list. * p/ x% P. V( a& N
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 </P><P>
( ^% `3 B( t$ R2 \  b-k host-list Strict source route along host-list. 0 m  B6 ^% ?+ q- h6 @
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 </P><P>
9 `! o: p0 h1 }4 ?-w timeout Timeout in milliseconds to wait for each reply. & x4 d0 a- b4 S4 |8 E
指定超时间隔,单位为毫秒。 </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] 0 u) j0 J, P( a$ a& R* ?
"DefaultTTL"=dword:000000ff
/ r3 J/ [0 J) I% P. b+ k255---FF 7 ~: L& {5 [+ S5 x) i0 L" F
128---80
2 W( O9 k2 [" k64----40
. r4 T+ {" K7 j: \32----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>
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

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