- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 2 T2 ?9 r6 M. i, A
' V: X2 ~, Q( b. S0 r
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
( K/ C4 n/ J) E+ I8 ~) p
/ n& v- W1 K1 @- U5 _; A5 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; ]# t6 _. L* K8 [- \" Z$ R
4 Y: ]. l: Y e- }& M; J5 z- I Options:
' R5 G8 E2 y" O3 b4 _8 T3 e9 c2 K -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
: q8 I2 y) N3 f; T 不停的ping地方主机,直到你按下Control-C。 ( Q: P7 J1 f! e/ [% l* T% R' t# G
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 ' ~5 {! R8 K& g
-a Resolve addresses to hostnames.
) w: L; n0 U8 ^
$ B- o, y# k+ W) N5 r& T 解析计算机NetBios名。 ' V) n7 {! q1 [# O8 D! j5 B, L6 ]
- V9 t7 g1 d4 I5 p 示例:7 j6 n" _- O, H V; z. Q4 K
! L& b1 X4 Q) y# L C:\>ping -a 192.168.1.21
6 s1 V ~7 e" L E1 L2 q Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
9 V2 b2 ^" I8 @( z6 G, A- [ Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 , ]4 e$ B: [# Y% X4 ]& v
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
1 v7 }6 a# r% ~ Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 $ i& z( W H& R4 z
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 - h2 D& p3 r# `: j1 |( j8 I- Q7 I
Ping statistics for 192.168.1.21:
% s, V2 J2 P& g4 k6 H5 w6 G Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
# T3 j& n6 _! }* J! `% ~& L G Minimum = 0ms, Maximum = 0ms, Average = 0ms
9 L, B, B# K ^3 B$ C. b 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 5 @: Q4 | r2 |- U# r
& i8 \- R3 K' t _/ v
-n count Number of echo requests to send.
+ b6 |3 f4 g& e( a/ T 发送count指定的Echo数据包数。
8 r% m6 ~$ u. {9 {& E
8 @9 o$ z# F& c+ z; p) | 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:2 \( J; S0 E( ~! A6 q/ k
, B8 I6 K3 \0 p: m
C:\>ping -n 50 202.103.96.68 6 s- _ L" W9 ]4 w2 ^8 ?
Pinging 202.103.96.68 with 32 bytes of data: / g6 a, `& K3 k6 z/ l6 k7 t2 q
, `! ` x2 W& ~) S0 K( H
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 f3 b: E8 Q6 d" c
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / {( t$ W! p! R' `: v7 ?, f6 w
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ( ?3 U7 L- K! K4 s) U2 D! e: }& R) z
Request timed out.
0 g; k& ~- } h. y ………………
' H) t4 ~, F; n7 t3 g! {% T! ]# E" c- m' d! K
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 6 ]$ C- @' F7 A5 w o3 ~
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
R% [4 Q: l' n; c6 w1 Z4 l Ping statistics for 202.103.96.68: - p1 O5 e8 [2 y) L/ o+ C
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 7 g5 Q8 c' N! q8 S- ^0 [7 t( i
ound trip times in milli-seconds: / \' t4 D+ C# [9 N4 A+ D1 `
Minimum = 40ms, Maximum = 51ms, Average = 46ms
3 E. v$ o" A: A
1 U2 j. d5 s- M 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 ( K A( ~+ Q2 K$ g& g1 v! E
-l size Send buffer size. 定义echo数据包大小。 ~4 g. I/ Q/ R2 `3 E2 u6 s3 u, y
4 k; [1 f% g! [% Q9 M3 X" [( j7 C 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)' L' ^( m5 W( y0 y
6 }/ B+ A4 r7 R C:\>ping -l 65500 -t 192.168.1.21
% B- B ]! w4 r Pinging 192.168.1.21 with 65500 bytes of data:
8 A8 e% ^/ F4 K5 H5 B0 r Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ( l2 h2 Y: e+ L, I
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
# L0 [+ T/ S; n4 s1 W) A/ r ………………+ z( L" B. |. ?9 k! C. p/ T
- v' p3 @: V8 y' i 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
( H: C8 D- p& ~5 F
7 I# E! E# b0 @/ ?5 n; V1 C -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
* f9 S& O% r* t 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 + I" e1 ^# M% D& Z3 a" H }3 T
-i TTL Time To Live.
% G. \- i4 |; i8 ]! @% ` 指定TTL值在对方的系统里停留的时间。
1 {. x9 ]% [- z/ X& _7 ]3 P" o 此参数同样是帮助你检查网络运转情况的。
1 b6 O/ ^( E; g, g- Q* B# [ -v TOS Type Of Service. 2 O+ V' U0 z0 Y! O0 M
将“服务类型”字段设置为 tos 指定的值。 8 |: m. H, B' i& i( Y
-r count Record route for count hops. ( x* ]' W* g5 B0 q& w1 ~1 u, c
在“记录路由”字段中记录传出和返回数据包的路由。
7 T1 q- O- J Z/ D
4 O! b% s2 h0 p; p" I3 c/ ~ 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
9 z9 \5 Q- Q( t: m3 V3 v C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) * E9 j ^, {9 y( F5 P& W
' f" I& c _- ^! j
Pinging 202.96.105.101 with 32 bytes of data: , |( ~; H& \& X6 e
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 0 N, s% m/ I3 t1 d: h; b) w
Route: 202.107.208.187 ->
$ {2 R4 i7 E! g! P7 m 202.107.210.214 ->
7 S# |- n, Q3 S, r! b* l+ c. r% } 61.153.112.70 ->
7 N% C; |% K5 ^! O+ t; J 61.153.112.89 ->
. }# m6 d' P, b9 Y+ q, D6 ^% [ ], G9 V 202.96.105.149 -> 8 c# p7 g" Q* x- _6 Z S! t# L" U
202.96.105.97 -> ( x0 {9 [& `, y$ C9 P4 g; Y% N
202.96.105.101 ->
! G$ r: m0 G$ w( M; [7 s 202.96.105.150 -> : Q+ u8 ^3 d& Z' ~4 X6 w$ h
61.153.112.90 1 _" c8 s( Y: R# k6 q! P8 B. v
7 h/ \& V+ E$ B2 Q: g Ping statistics for 202.96.105.101:
3 G ^" [- z6 [1 U4 H Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
4 i2 H1 i0 m3 M# J" V7 z c, ` Approximate round trip times in milli-seconds: + q, G8 S0 r9 J4 D+ I* i
Minimum = 10ms, Maximum = 10ms, Average = 10ms
5 C3 H: {. T, e$ e: U! }( l2 s; m* k7 B6 y3 D5 X! R
从上面我就可以知道从我的计算机到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这几个路由。
4 V. ]; z' w2 B/ R# O7 l8 n% N* D# d7 ~5 m* M
-s count Timestamp for count hops. 1 F5 R V/ N6 e3 a9 E, H6 K
指定 count 指定的跃点数的时间戳。
' e! e9 i9 e. Z# _% D 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
$ N1 ^% r' V+ _2 O) T. _( O -j host-list Loose source route along host-list.
3 X+ Q+ t, f) f; g$ p: O利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
" s4 g6 B4 t9 y5 F, d* \
9 Z2 o5 u- o& F' A$ r5 }" ] -k host-list Strict source route along host-list. 5 K9 @3 ~% @& n5 ^# \9 T
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 9 V% R# j& D8 Z: ]3 R
-w timeout Timeout in milliseconds to wait for each reply. & N u9 }8 g1 R9 L+ p4 G2 a2 D% h
指定超时间隔,单位为毫秒。 7 f' q# h% l* M5 v
此参数没有什么其他技巧。
" z! n, g6 k. y; g
C2 u, z# B! |1 k5 X. u; q ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:' B: k8 Y+ J( \
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
/ [$ d' U* j7 |5 a1 {7 F0 x "DefaultTTL"=dword:000000ff
8 F) @7 c1 E$ y) O* o 255---FF 1 f u; M1 [) e% l
128---80
: Y) }3 |) m4 N8 x' p 64----40
- v( ~ ]( [5 D& ^" P: c8 ~; ^ 32----20 |
|