- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
|
对于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 |
|