- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
. M" C1 l6 H+ u. j1 g2 N+ F9 ?# ?4 D9 N+ U- W1 M- c( U0 k1 a6 A, F
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
" [' D& ^7 V" r- P# M5 @5 x8 v1 ]5 i* P5 _
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# l# r v [) |% b
- ^% k3 }* U- [( ]3 g# k
Options:
; v1 w* K( u$ J( n! ` -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
. @7 s3 w2 a2 O+ ]$ ?2 n/ G 不停的ping地方主机,直到你按下Control-C。 Q4 z y* V1 }% C# {$ Y
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。 ! a7 F* H( j7 h+ C1 X5 d
-a Resolve addresses to hostnames. 6 P+ z/ ]. _1 J5 s- _5 O
" C; w7 r+ k |0 o4 m) |/ \) u
解析计算机NetBios名。 . d1 s5 B N" k& b- p
, z% R" m* |' |$ w0 i0 I 示例:
2 a/ g7 B6 L- w& E1 o; ^6 \% Q' B1 c& h; u' J2 M! [: A& o
C:\>ping -a 192.168.1.21# s5 u+ P( g: L: @% X
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: ! d7 S8 [0 }$ q* c" F7 u
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
. S5 {: F0 \* T8 Y Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
% T& J! v4 X% M& L) Z Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
0 J5 P4 y3 H# R Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
( i% {0 p: J( U3 H( T+ s5 b Ping statistics for 192.168.1.21:
3 M1 ^$ P! Q4 p; w4 j Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: ( }# M2 [$ w7 @5 F+ J8 k( Y
Minimum = 0ms, Maximum = 0ms, Average = 0ms
6 x2 n0 Z- D8 V0 k 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 4 V! F2 R* w c% \. U1 ~3 o
" C& h: J& X1 V& ^ -n count Number of echo requests to send.
( w' l# O. x" e" j 发送count指定的Echo数据包数。 4 @0 v% F2 o- x2 [% ?- U6 Y
$ k4 Z7 Y1 G/ x" x% W7 K
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
+ s; n0 B* P c6 U4 k( Z" Q9 z: x# Z1 S& ^+ E$ ~
C:\>ping -n 50 202.103.96.68
. J# Z- _3 m4 ~; ]; S9 u# S Pinging 202.103.96.68 with 32 bytes of data:
. s G k" E p# V0 n
6 y( E! `3 w6 ], r; B# @% T" V" u Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
% X) T4 I% e8 j# u Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
7 C, z N7 r. L6 j Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 - ^6 {# b: K7 G" @% b5 M
Request timed out. * p4 t. A% v1 S4 a P# ?
……………… 6 ]6 i% B5 u T8 `* ^3 W0 y
& c2 x+ P! k- N' p* ]
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ' `/ s" |4 f. s& P. ~
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
3 G8 W1 a- O8 p, q- X Ping statistics for 202.103.96.68:
. ~( ^1 y2 b" B Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate
3 l$ W) O: S$ r' h2 v; Qound trip times in milli-seconds: - t$ t8 T# @" H+ ~' Q! l) }: G
Minimum = 40ms, Maximum = 51ms, Average = 46ms 2 N8 n1 Y1 k7 Z6 s
9 Q( k1 S' x, i6 a( s
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 q' C1 h, H% D; j2 J
-l size Send buffer size. 定义echo数据包大小。 b" T0 P2 q. Y* y# L' V
6 p% v2 \8 c, L7 x$ t! T+ I5 a
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)# U: T [. F4 M4 O0 [
$ i ?7 i+ g: C# ~* e5 w2 b' \
C:\>ping -l 65500 -t 192.168.1.21 & a5 \2 ]7 u, g) K
Pinging 192.168.1.21 with 65500 bytes of data: 4 H+ v H% w. u" ], O5 s9 f
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 * h7 D2 a2 k5 G
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
/ X- F6 U6 U* g ………………
, w; Y3 q6 \+ Z _8 r: C$ ^
6 k$ B3 r ]8 _9 d* X 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 ; W4 F5 d: k p6 c9 P
t- ~: |1 s! Y+ @% V
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 : ]9 U6 V& ^+ S% [! |8 D9 R- r6 I8 z$ G
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 & t( v5 h/ c0 P `7 ^6 j
-i TTL Time To Live.
% [, p, l. Q( z( X 指定TTL值在对方的系统里停留的时间。 1 @+ t& S. H8 V* c: j
此参数同样是帮助你检查网络运转情况的。
2 O) H x: w) G9 p" F! X; a -v TOS Type Of Service. ( {4 h8 v& L& c5 r
将“服务类型”字段设置为 tos 指定的值。 i& `) ? O! b i: R z) m' Y3 M/ \8 h
-r count Record route for count hops.
* Q8 D6 `# K" ? 在“记录路由”字段中记录传出和返回数据包的路由。
' ~' K+ }8 b# F' ~. r9 X+ R1 R6 z" a m3 Z
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例: - N' Z. ~- ?) ~/ q$ B7 r
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
* }% w( ` r3 M0 o; Z, D: k g, A; L$ g/ W, W( ]2 W4 o3 z
Pinging 202.96.105.101 with 32 bytes of data: * X \+ R$ a( p4 e) q1 S% M
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 - e: ~8 P% `8 n
Route: 202.107.208.187 -> 5 d* J: o7 z6 O& a% Z) F, V
202.107.210.214 -> 2 C6 f3 Y8 E+ n0 y, \
61.153.112.70 -> * ~2 @0 g6 U& ~5 Y: w
61.153.112.89 -> $ n: `) h; R( ]9 l+ I# X, _
202.96.105.149 ->
* M/ o- F0 F* O5 q' N6 Y2 f* M+ l 202.96.105.97 ->
# Q* Q: f+ @. `4 G* q 202.96.105.101 ->
1 r$ G/ A8 d, @* |: w3 X 202.96.105.150 -> 2 J* d& \* X( W6 T: H: s3 ]) _+ |
61.153.112.90
+ y8 j4 x: I) {& p
. _1 u+ D/ j) S# N. s: P' z5 H1 W+ P Ping statistics for 202.96.105.101:
/ Z; h; u' ]/ S& j2 _ Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), , G, u# P: w8 C6 a* w1 X
Approximate round trip times in milli-seconds:
+ Z' I$ z3 A3 G# u Minimum = 10ms, Maximum = 10ms, Average = 10ms
% d( ]% m$ k3 `) c- V# P6 V( V7 K8 X
从上面我就可以知道从我的计算机到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这几个路由。 * K; N; r+ V, q1 t
% a$ @5 J3 Q5 q. w0 { T; U
-s count Timestamp for count hops.
- X1 h9 w3 u4 ?0 K% r. y 指定 count 指定的跃点数的时间戳。
$ Q v! q& f+ K) e y 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
, |' b5 D+ q' ?: ` -j host-list Loose source route along host-list.
# r7 N% N* x+ s9 T3 k利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 5 |" T2 O+ C4 w% w7 I. I# O
- d. R5 Q. _# G+ L! P$ `2 m1 F* z. {# p
-k host-list Strict source route along host-list.
3 R/ ]3 {9 t9 Z6 ?; B2 a+ m& t* I4 z利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。 $ b& z. y, |1 R8 O+ @
-w timeout Timeout in milliseconds to wait for each reply. ) |7 c- x+ [6 ^/ s6 Y. }" a! O
指定超时间隔,单位为毫秒。 ) I e% B! e) C* p$ r
此参数没有什么其他技巧。
6 C% ]/ O( K2 \9 x2 F- z9 Y/ s: ~5 Y- }* t8 K
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:2 E5 v6 Q& z9 q6 S4 b% P/ `
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] ; s/ w- D& j* h$ \9 G( Z! x
"DefaultTTL"=dword:000000ff - M" x, Y. c$ r+ [' i" g1 t
255---FF % @% |. o* `% B) ]0 [1 V
128---80 7 b( `1 J% h' _" i- N$ V$ b8 i
64----40 $ B- d4 ]3 }# }/ G
32----20 |
|