- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 ' i9 L4 o* `* `, k
5 r9 [' U1 D. Q, \2 g4 D% q
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
8 k/ e$ t$ g1 a% I( d6 g* W# L+ x8 s
' C. s2 S% k7 j5 z 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
0 X9 }1 f# @0 p2 Y9 K6 E. d! t" F8 }$ v& m5 Y7 d
Options:
% P) K0 h5 ]0 b& I) ?& l -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
# C8 G/ Y# T0 W# D. w" w 不停的ping地方主机,直到你按下Control-C。 $ b; n4 e0 m/ N6 p# c- B% h
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
* f+ G) E& m v3 H -a Resolve addresses to hostnames. 2 s+ _) U, U. R" v
& t# o" P+ @* [) H9 ~! E7 w
解析计算机NetBios名。
' j6 I6 b5 P( M' W- o5 }: [" ?
) w J) A6 C9 h+ y7 i* D/ _ f 示例:
2 S' ?% z5 x" d$ F; l, _9 W5 V9 P) @; X: X* c& Q" c) R
C:\>ping -a 192.168.1.21
& x8 M4 m! v5 `, B( m+ F' C Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
% D: Z& d U+ I Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
; Q8 O" E Y4 M1 U/ Z2 ?( K Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 # {$ f- B% p. `( u3 Y# s) Z
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Z7 r& u% Q& |! E7 N# ^0 k7 Y& C! A' F
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
- V0 [" \; b7 g! H; [8 _& r Ping statistics for 192.168.1.21: o3 d1 I* U, ^, a# y' [
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
) h- q& D5 P0 a2 q2 u Minimum = 0ms, Maximum = 0ms, Average = 0ms
- W2 @0 S) d: ?% O" i! R 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
; y5 q0 ~! C8 b+ S0 ^) |9 \, f- E0 z. x- g: o: `
-n count Number of echo requests to send.
d6 o4 m! Y) E% c$ b( q1 m 发送count指定的Echo数据包数。 2 n9 ]: ? V' Y: ~7 e2 Q8 J
+ D% E% O, x; f% h. R 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知: h* z9 B5 A, J* a- ^
' R9 g3 a4 X- Z; R) Z/ ` C:\>ping -n 50 202.103.96.68 " g* T5 w4 H& H( S0 Y$ B- J/ v6 n
Pinging 202.103.96.68 with 32 bytes of data:
$ V9 Z* |( r& S$ ` ?8 C8 v5 J" C: h3 t: e4 \) n+ X
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 : A7 ~+ q% v/ B4 A5 Z$ a- q3 m
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
+ c W/ v/ ~. T; i Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 _& J9 g$ M7 q% n! ?
Request timed out. 1 L. H2 c1 X1 T6 A% i* N P( X8 ]
……………… ' N% W9 E0 f- ]) j8 Q0 a+ X
% y5 u3 {" @7 T$ s( z. v1 W Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ' }& K/ f$ B: C9 Y; Y" J4 Z9 G" _
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 . a9 l* B9 P1 A! K; Y; X
Ping statistics for 202.103.96.68: e! @3 V4 W3 G1 g% S
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
& G8 v1 B! J U) Q6 Iound trip times in milli-seconds: ( Z: ?" y V, C, V) H
Minimum = 40ms, Maximum = 51ms, Average = 46ms
8 X! [4 j: N& F5 k( {; {4 r1 c5 U, D3 l
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
9 ~1 w/ p' c0 s8 @, x -l size Send buffer size. 定义echo数据包大小。
' R9 _' T7 w3 @7 G$ w2 i, D' |6 M6 t" t
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)4 P# ^8 q& }+ U1 j- C
/ Z6 N. K( b6 X* M- w3 | C:\>ping -l 65500 -t 192.168.1.21 7 Z. ?6 l6 E- h& K" O9 g% C4 ?
Pinging 192.168.1.21 with 65500 bytes of data: . x# ?0 R/ I& k6 M: j
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ; ]; h# O. M+ Z9 t
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
6 b" y7 E) i, f7 |" b4 N o ………………6 S8 U6 ~. s s. P
8 t. |# ~. x8 O$ J2 j 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
: C! A3 y7 ~& J2 ~2 r! R
; R) @5 w6 q1 S# p -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 P" P8 W- P. Z' f; f5 w9 x8 Z
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 , u4 T+ M3 z: D8 F0 [4 m
-i TTL Time To Live.
" o o' d. F* T2 S 指定TTL值在对方的系统里停留的时间。 5 H6 h2 Q$ f4 o s
此参数同样是帮助你检查网络运转情况的。 $ @) L9 T3 F. U3 W, v5 @ Z6 S
-v TOS Type Of Service.
7 h: b: B+ d v/ t 将“服务类型”字段设置为 tos 指定的值。 $ z2 P$ g b! V2 O4 B9 A
-r count Record route for count hops.
# M8 \: `2 w. o% \: ~ 在“记录路由”字段中记录传出和返回数据包的路由。 , O3 Q$ ^0 G* s4 @
: I% V1 j, f, n0 m& w1 O
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: # h+ C8 V2 R" G) [7 z; \
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) 6 X j) [2 M; O5 t H9 W
6 \' }3 m2 n; ?- D" w
Pinging 202.96.105.101 with 32 bytes of data:
+ k7 X! p) f& R7 d. v- c$ ? Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 & I8 m$ Y" X, I# m
Route: 202.107.208.187 ->
! G& `8 h, ?# `6 C) Z. ~ 202.107.210.214 ->
0 H$ l. I' \- S; d 61.153.112.70 -> + P' z, K* G: [1 o" Q# v7 s
61.153.112.89 -> 7 h1 ?! z0 E0 P6 _$ Z
202.96.105.149 -> 3 Y" [( `5 q4 Y' N- [
202.96.105.97 -> 1 n/ r- Z2 Y3 a) D
202.96.105.101 ->
2 F6 n# p* ]7 h4 k0 ]& K9 S 202.96.105.150 ->
. c; d9 M" L1 B, A 61.153.112.90 ; z; K4 O4 p8 m0 U" l# L
5 R6 d4 ^; R, P
Ping statistics for 202.96.105.101:
5 ~7 \+ j( D: a2 `8 {* u* s Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 7 Y1 C0 P, W8 r5 @) M! G! q, Z& {3 L
Approximate round trip times in milli-seconds: ) z$ F' P- [ `0 j- u4 \( n
Minimum = 10ms, Maximum = 10ms, Average = 10ms
8 z$ [9 g5 T3 T1 N6 w# G% V3 k+ P4 Y* L2 ~. m* R, c
从上面我就可以知道从我的计算机到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这几个路由。
. W3 f6 h, F* D e! @9 J$ V0 a6 g$ x" f8 `
-s count Timestamp for count hops.
) b" c7 d- ?+ Q9 ]4 S- ^# X! e 指定 count 指定的跃点数的时间戳。
3 M; n( A0 n* y( M% r 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 1 D! n; d4 I7 T2 |% Y
-j host-list Loose source route along host-list.
9 Q; O" B6 n: r利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
6 q. h5 \) w- A( P9 U C* B
$ W( `2 O2 g. v& |; T$ T# t. Q -k host-list Strict source route along host-list. 8 l2 T- n+ o7 }! z& ~
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
! X W6 e' O- E" `3 X -w timeout Timeout in milliseconds to wait for each reply. - Q* z5 X4 S1 f! L
指定超时间隔,单位为毫秒。
8 x8 O) {& f* k. D( T 此参数没有什么其他技巧。 $ t- Z O% G. c0 B2 ` f: W
" J% s% i1 x z' i; G, i9 X( K
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
1 l$ F7 ~3 |$ v$ y. M8 m' Q [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
- L! n- s \6 P8 `) k "DefaultTTL"=dword:000000ff
2 @; s2 U" M0 w9 Z4 R/ x 255---FF
( I; G- K, ]8 m& A) {- `8 v+ D 128---80 5 }- [1 Q$ F. I+ r. R
64----40 9 X' e% ^% S9 V# }
32----20 |
|