- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
% Y, v5 G# V( a$ \) ]: W' j9 J8 A; r* p h: L
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:. u. x) _$ `! z3 {
8 |! }# ?+ L8 A' o& i 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& F, g. O, t; z0 Z" B0 a2 G, M- J
. E* Z0 Y0 O; C: r2 Y' S
Options: , ?* H* j8 c1 y/ k7 L' t
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
8 L3 |0 U( z2 H# l- e6 y- w. M% x 不停的ping地方主机,直到你按下Control-C。 * ^1 A) Y$ q9 w+ a( D$ e1 b, Y7 c7 a# X
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 8 T0 |5 N* V+ ^5 M d
-a Resolve addresses to hostnames. + `& B h8 e6 y2 M) H# {
4 z( S+ ^7 P' L* f- i) i: ]" g
解析计算机NetBios名。 ' t* y) A4 l# T3 V9 J1 v
! a5 @9 H: z& `/ w& F 示例:
7 e+ D+ M, L3 U7 e+ Q$ J& [/ b4 N: i H' c; h, F3 F! Y
C:\>ping -a 192.168.1.21& v- n8 e3 }5 n" {, }* \- W; c
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ' s* I( b! b- w8 m
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 1 ~- T9 B9 N0 Q; H# u5 A, j8 q
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 * ]) v( C, }" ?1 ?
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 4 L: D( y9 H4 e, s+ C! d4 Q$ n1 h3 I
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
! o/ N8 o, a. D0 z, O Ping statistics for 192.168.1.21:
" v8 q! R7 l0 U. v- L* y# k4 p' f Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
8 a! k- v3 r& `% h$ g$ f Minimum = 0ms, Maximum = 0ms, Average = 0ms + y, H( U& ]" z+ r6 v0 ~) R* M; x
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
8 [% C- }) K: Q4 e7 g7 G. I' C% h/ T7 M5 x7 l* `
-n count Number of echo requests to send. 8 e5 X1 d2 N0 ?& Y6 Y
发送count指定的Echo数据包数。
+ G/ G" k ] h$ H+ p R Q0 w+ O, {9 e; p' h! }
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
6 r1 p+ T7 I0 [# ]0 n
. Z, S6 Q& U1 e3 v C:\>ping -n 50 202.103.96.68 " K8 ]: s- D4 {( x3 ]8 R& h
Pinging 202.103.96.68 with 32 bytes of data:
/ Y+ G: u e4 j/ g3 H0 Q y: u6 q# [& h7 \3 c/ c
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 u& G C1 u5 l# n0 j
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
+ z9 m# a. w5 W Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 7 g/ I* ]1 D+ a
Request timed out.
1 S. r% N( j( R: T7 ^ ……………… b4 G, p4 y0 X3 J: O5 c0 S' K+ p
* C m% W: j% X( J d0 l+ j+ O- p
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 2 {8 w8 t4 w) P# J- Q
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
; T% B& o% ?1 D+ i A2 D, n Ping statistics for 202.103.96.68:
2 M% G7 b& X8 Q0 s) E* R Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
6 _. @: z4 t/ l9 {" l$ [+ Eound trip times in milli-seconds: : {* E9 k6 c3 n
Minimum = 40ms, Maximum = 51ms, Average = 46ms
2 W0 [% D( b' g0 [% j8 b. T$ ~( T& O" c, N
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 2 W1 {* N$ C5 u& K
-l size Send buffer size. 定义echo数据包大小。 " w8 w* ^2 L: @
" ~8 \7 l- C/ u 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
" q& X( _. N& a0 @! C# o' ?3 ?$ w6 ~( \% ~
C:\>ping -l 65500 -t 192.168.1.21
5 y7 R5 O2 N0 ^+ A+ d4 a Pinging 192.168.1.21 with 65500 bytes of data:
: X6 V6 l% D* D# C& i' u! ` Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
: K" [5 c* J% b. G- c% n0 z U: ~: d1 n Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ' W' W% K5 D- ?3 n6 X% \' J1 q: Y
………………8 m- Q' J! V/ g: v
1 H, b1 e/ |# y6 x; S3 a& { 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 $ c& Q# ^& p" ^; i6 `
: |+ t3 x8 g0 l* @- w6 r -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
6 W, M/ s( P# M0 D, j3 k0 v5 N 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
0 r' N$ U4 E9 E% y$ K -i TTL Time To Live. 4 X' Y5 S' ^$ v1 e
指定TTL值在对方的系统里停留的时间。
! D7 v0 s0 s/ N! O 此参数同样是帮助你检查网络运转情况的。
; [5 _, u+ s' [, ]1 G) y -v TOS Type Of Service. ' g( o2 d* f+ W$ H \3 L$ T
将“服务类型”字段设置为 tos 指定的值。 1 G( T9 `7 S! F; W
-r count Record route for count hops. ~, F! T5 J8 x- ?: \: r; s
在“记录路由”字段中记录传出和返回数据包的路由。 ' U6 H, O5 ?* ^0 ~. @
1 m7 d; S7 W1 S' Y
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
& G5 `% z4 L# F! Y# U& K2 B C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
+ v8 F) `) |2 C0 H' z: A" t5 Q3 V! I! r% o' K# F
Pinging 202.96.105.101 with 32 bytes of data:
3 T% K" V% _) L: | @4 \ Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
- I0 E' S, E" S. e! c, M4 G" M Route: 202.107.208.187 -> 9 x9 W. a! a, S7 g ~
202.107.210.214 -> * j w" A9 p* S$ ^$ y" K4 P
61.153.112.70 -> , T" X- |/ O' v. J$ Z7 }$ i1 ]* {
61.153.112.89 ->
- w! X. i: {) D8 j d5 C 202.96.105.149 -> 8 b, n! R9 L8 o; ?1 e
202.96.105.97 ->
# R* e4 s6 K3 c& j7 o/ D 202.96.105.101 -> 5 W, ?$ v7 ^' n6 f K1 Q* K
202.96.105.150 ->
! z5 U) v5 Q* ^' y3 R 61.153.112.90 6 r/ f* s# M8 z
# K( c! U5 w2 v; s) C" {! c% q/ z Ping statistics for 202.96.105.101:
1 z' J, n' W: w& V7 F Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
, D. g/ p$ Q. Y6 e! b# X Approximate round trip times in milli-seconds: ; w# D+ L5 i) C% t6 F
Minimum = 10ms, Maximum = 10ms, Average = 10ms " C/ x& f/ _% ~. p+ u2 N% C
/ f/ z9 B- R8 G: `3 J0 L" }3 n/ M
从上面我就可以知道从我的计算机到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这几个路由。
5 U9 `: w% Z6 s/ E$ x5 c, M3 b4 G# a' m" } z/ C
-s count Timestamp for count hops. 4 W9 U: \7 S- a1 S. `7 d
指定 count 指定的跃点数的时间戳。
' G ]+ g" q( a- n* M1 }0 | 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 3 ~0 O8 y; e6 `
-j host-list Loose source route along host-list. 2 j2 I) l5 W9 x
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
+ |) H; K- k, d0 Y6 [, |; o* z+ o- i' c
-k host-list Strict source route along host-list.
1 O. H" I/ }7 Q3 N7 Z( b( s: u# J利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
6 l( o( D( L7 G -w timeout Timeout in milliseconds to wait for each reply. 3 S) M; |" X( Q- g" N
指定超时间隔,单位为毫秒。 % w4 H; t, v7 |$ F1 h$ L5 W5 X
此参数没有什么其他技巧。 & d5 G, @, v$ {! f- J' Y
3 P: \: k4 k6 V: k& a' `* H: v: k
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:: E* `4 {+ J) d7 V5 i( f# B+ {
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
# g% t" B# H: s+ k$ u "DefaultTTL"=dword:000000ff
2 e4 d& K1 _/ |0 ^4 R 255---FF
9 q8 Q5 I; v, q# I; l& m2 G1 `" ^ 128---80 % D# |, U6 n0 ^6 H* @9 `! H
64----40
/ ?1 y6 I1 _9 j, j9 U 32----20 |
|