- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
9 {9 C: v% I. V4 j: H# v0 F
; X# K: f" w; d7 I 现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:9 @/ D) P x6 J Q a7 j
/ u0 }+ l& ?: b9 \7 p, W* h
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# ?, t& w4 ^# _, E1 }
7 T' K% [* P$ H# [5 J6 J' |
Options: 8 O% i$ M; F8 k' c8 q; h' o
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
+ w8 Z6 M( B l 不停的ping地方主机,直到你按下Control-C。 , f& Y* ?! p0 u; x3 L5 s
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 * [8 m9 o' _7 E9 u' |- M
-a Resolve addresses to hostnames.
e {& G# H1 ^ \ l9 n: S) { C7 S, z( H. R9 f2 s2 \
解析计算机NetBios名。 , o" h. t/ x% ~ W
2 W8 K4 B/ d4 M 示例:
% p" a4 u3 H. m$ L# R/ R: U/ _9 `9 h# Q# G% b0 h. i6 t$ X
C:\>ping -a 192.168.1.21
" w% u. U$ [5 O( g Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
9 c7 Z+ x* o7 D$ l. g, P/ [3 N Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 % j- d; I' p4 M2 K, b# c
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 ' u( Q! u: V2 c! i& v" L5 P
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
* d( v1 r8 ~% o% D Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 Y0 l- h- N9 g2 o1 Y8 g$ R0 d Ping statistics for 192.168.1.21: , [3 l0 D5 n0 p
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
. R" @7 o( D$ S& } Minimum = 0ms, Maximum = 0ms, Average = 0ms & V. T% w4 k) |9 K5 G4 D: U
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 5 a& b9 R' w# m4 f7 Z' ~4 {' O
! _: E: N+ A5 X -n count Number of echo requests to send.
4 J% A3 R& j2 ~7 X5 r3 O. m 发送count指定的Echo数据包数。
* M* j5 w) @" ~4 B2 D& A" K/ \
2 f0 h5 C% m0 b: N 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
! k D" s5 D4 Q) c- ]9 U0 S g5 G
C:\>ping -n 50 202.103.96.68 1 T: K- F+ H5 e' L! ]
Pinging 202.103.96.68 with 32 bytes of data: / ?( @( W+ f! L, e+ w3 C2 m
9 [2 i& n9 C/ p$ E. J9 G( }' c, R
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ! H0 D- Y4 @& @" p4 L6 u
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
/ J9 g& G0 L6 D+ I% \$ a Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 5 f& a9 B' R6 b. N% s& K: A; s2 [
Request timed out.
+ w. C% ?' Y4 Z) K+ J" J- V ………………
, |$ g% L8 q! ?- ~! \7 ]
1 n [% C8 s5 ^; S7 V2 p$ N2 ^ Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
- e! d6 N; V+ u7 x# |- W Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
) L. f' v' E4 ]9 s8 i! V Ping statistics for 202.103.96.68:
, |) l+ s" ^1 k# M# b) I9 ` Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 6 T4 f) ~6 B3 D: s! u2 \; |
ound trip times in milli-seconds: 2 W; }3 n- X# }* S
Minimum = 40ms, Maximum = 51ms, Average = 46ms
3 ^# V% t/ X) X/ T, C/ z, \
+ N" i& B/ a H/ N( [% |6 M0 D0 T/ \ 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
; G. I" p. c. r* v -l size Send buffer size. 定义echo数据包大小。 " h! Z& I% N* e+ ^1 T! y
* L6 N0 G& O# H+ j& n- S3 S2 U 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)+ s, @5 x! Z) {
- w7 T9 ~" E0 d5 J C:\>ping -l 65500 -t 192.168.1.21 / w! y7 l l# s$ \. t
Pinging 192.168.1.21 with 65500 bytes of data: 4 P) x" x3 }' ] a3 _
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
: y0 K$ [( Y4 m3 X6 y% M2 L Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
4 J% m3 `- i+ g$ Y: f ………………
4 e6 o3 n8 K# E. X
, }9 K) ^& I3 ^' ` ? 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 0 D# `+ p* K9 _8 z" w3 M8 l* Z
. Z1 N. s% ^$ f) b% [* g4 N! E; t) B -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 0 V2 F9 O7 I T- n3 f# r' u0 a
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
% {" g7 B1 K/ a -i TTL Time To Live.
: r& C3 G) c5 e 指定TTL值在对方的系统里停留的时间。
% ^* v! k( }1 C 此参数同样是帮助你检查网络运转情况的。 ; b$ ~9 C+ @. \$ `2 C
-v TOS Type Of Service. . o1 ? j% |* s7 ?, l0 e
将“服务类型”字段设置为 tos 指定的值。 9 m* R' n- n5 H: p2 a
-r count Record route for count hops.
9 I' S) l( q, o$ e& K# U5 t 在“记录路由”字段中记录传出和返回数据包的路由。 + J' ~2 a8 h; T1 V; U0 }, p
g0 m% O; S; B4 S5 R! T; h6 \4 N 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: : ^9 \) i9 L/ n2 \# y5 K$ F
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
4 n/ f, @8 T# x0 H1 B
. M* Z3 k% d% ] Pinging 202.96.105.101 with 32 bytes of data: # s Z" P+ s- z; y9 N Z
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 & g4 t8 \6 t% S% X* H
Route: 202.107.208.187 ->
5 e% R9 @) e# i) X" d 202.107.210.214 ->
8 }: g* m5 M, W8 b6 \$ q 61.153.112.70 -> ) T& ?$ W* i- G4 O* `. ~
61.153.112.89 -> 8 P6 E1 K K% N) R, ]
202.96.105.149 ->
( l& L+ X& _- V. h5 k* H% b. a 202.96.105.97 -> ( |4 I7 I6 N& _+ v2 S- \
202.96.105.101 -> 4 ]2 i9 Z/ l' x) a% t
202.96.105.150 -> & P; G) I! k1 h7 t/ \$ v# C- w9 w
61.153.112.90
, Q0 O) }! M: `' W
d/ j+ m* [- X3 f5 Q Ping statistics for 202.96.105.101: 0 ~$ S+ ~2 l1 B% g7 `* k% Y. ^
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), , g- T) k& L$ I" I( C
Approximate round trip times in milli-seconds: 2 U& l1 U+ ^% W! Y* n9 @
Minimum = 10ms, Maximum = 10ms, Average = 10ms * k8 f( l: V" z' v+ m; {
" u! h' g; j/ f. 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这几个路由。
, n+ |5 r* d+ c2 E7 Q
. X; ], J4 W. k. e P! Z -s count Timestamp for count hops.
5 t( a+ U2 x" z, B* ^: J 指定 count 指定的跃点数的时间戳。 ' K6 M; p) v" x' U
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 ) n/ o( D- f- s+ m4 ]
-j host-list Loose source route along host-list.
: R2 X, L. ~9 \8 s, D. Z利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 * J4 T" Y( \% n. T/ r/ K, [3 p
4 Y0 ~1 N) ]; S' e -k host-list Strict source route along host-list. * [0 Q2 R7 |7 a
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
& b6 j4 H% s: D% S" l -w timeout Timeout in milliseconds to wait for each reply. / e1 j3 E9 v7 M- F
指定超时间隔,单位为毫秒。
- r1 i1 g, ~8 ]+ i% h6 i 此参数没有什么其他技巧。 9 n& n' I6 R$ ~5 J
5 b! Y' S, ]3 u( h3 w ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:+ q' Y3 W& \' C& N1 I- R- ?# x" @
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
/ i/ e, z/ s' U, L/ B+ h "DefaultTTL"=dword:000000ff
; S! B4 f1 A! l" E& W5 K$ v 255---FF
8 T% M0 C( l: z4 h 128---80 ! K2 O- a9 e F4 O( G) C
64----40 ( l, y K- p$ h/ y7 b4 S& `; A
32----20 |
|