- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 1 n, e$ U0 l- ~* l
7 [6 c/ _- f+ A4 ~7 V
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
" e8 m7 t% A* s8 {9 X- o7 Z/ Q9 I3 _) E; l+ 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
# i7 x; [$ B# l# ~9 X" l( K% ^0 E: \% }+ t
Options:
% _+ g. [1 {0 O) l -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. % C0 b+ b/ Z. k0 [5 ^
不停的ping地方主机,直到你按下Control-C。 ) \' J5 B. A1 }0 b' k9 |
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
* K) A* m- z0 g; y -a Resolve addresses to hostnames. / B1 b8 b& h. v1 Y: B
; G- ]+ c3 S% `3 J0 U7 @' D) W 解析计算机NetBios名。 + j- `5 `5 d% h% u( N) o [
* E- P9 {% R; }* {$ v 示例:
2 j& q- W- g* K" G# f
: v3 f# `" e6 e8 c C:\>ping -a 192.168.1.21
g7 O6 Q* Y/ f& f) p4 _6 V B" L5 z0 o Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
" w6 H- a5 l6 J8 m" l* b. Z- Y0 H Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 . O* M; Z; O* \# s
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
4 d7 A8 ?2 `" C Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
7 h6 h( ]$ R7 V& E: i/ J1 U3 W Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
. P- K# }) X1 }' H Ping statistics for 192.168.1.21: % k/ k7 W$ y" R$ @
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
/ F) Z; D: \' W; A H& k0 f9 `. F' S! ? Minimum = 0ms, Maximum = 0ms, Average = 0ms
: t9 b2 h# o5 Y2 K; T 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。 ( b$ e* A& g; w
$ U, B/ n& ]( t -n count Number of echo requests to send. - u. n! F3 `! C S/ k; E E& e+ x
发送count指定的Echo数据包数。
0 J1 a4 D1 K( [! ?0 s/ r7 ]* |" k& d4 P4 n. `, J1 Q" E2 z: D
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:- r) u& m! _ m& u3 D G) {
: ]8 r1 C8 g$ \9 d C:\>ping -n 50 202.103.96.68
2 a5 S* e ~7 r/ G" w1 h7 D Pinging 202.103.96.68 with 32 bytes of data: . C- B6 z/ D* q) L+ B" b
+ v$ u' D/ p0 e' Q+ k P1 _- d# W
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 / E" Z/ M. w4 B5 W2 \
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 ' _& A# p1 ^7 [
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
^8 U, d& w2 l3 w Request timed out.
( t6 C3 T& F8 \6 \$ g0 m3 A, D( E ……………… 8 B: |7 l" T Q
5 ^2 T6 |0 v( G; o) T9 U4 n; a Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 " o' k' K7 U( J# r+ T
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
: @% ~' B# j* z! u* K* | Ping statistics for 202.103.96.68:
. j5 @# }* u7 Y$ P( G$ ?8 s. b* | Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate 1 f* p2 N }* a
ound trip times in milli-seconds:
7 g& F7 S* R1 z Minimum = 40ms, Maximum = 51ms, Average = 46ms
6 ]/ p4 \' j3 U8 O! Z
0 s* g! O4 v6 ^2 W5 [0 ] 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
9 k* B* ^* D: ?; f: n. ^3 G! Q, K -l size Send buffer size. 定义echo数据包大小。 % n8 l3 e2 G8 q- i. M8 Y/ F" r+ X
5 e" N2 _* c8 N- {+ I/ V9 ^ 在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
# K* }8 M2 L1 |/ D8 H& q) b5 t/ }1 z2 q# z* q; [5 u" \
C:\>ping -l 65500 -t 192.168.1.21 2 i1 _" m% T4 `6 y) e
Pinging 192.168.1.21 with 65500 bytes of data:
# a3 s2 I3 s& r$ m) \' X9 D& A Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
1 P) R) _- _5 j! q7 t S Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 2 z$ ]) M) Y1 t. G+ Z$ T6 x
………………
6 }7 V" Q) ^* Z% r, L8 K- \# P) P& u+ p m: ^
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。 4 x1 j% Z% _0 |% E
' q! q5 l; n8 h% D- J% j
-f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。
" O, [' G: g$ i3 h( n 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 + V4 \# s; Y U+ K
-i TTL Time To Live.
n7 C% p3 f0 Q. s 指定TTL值在对方的系统里停留的时间。
$ o6 n4 G' O& |# J: L% X* } 此参数同样是帮助你检查网络运转情况的。 ( [- h* D; B+ F' D/ m$ c, w1 z
-v TOS Type Of Service. ! y. L, g# O) O S' ^
将“服务类型”字段设置为 tos 指定的值。
+ ]7 M/ E; ]/ ~& n% ~5 ^$ i -r count Record route for count hops.
* r6 l T5 C( C 在“记录路由”字段中记录传出和返回数据包的路由。
" Y' t0 O) t5 y( c
4 Y$ E3 ]5 K6 m 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
8 K. i5 N3 @$ M3 d% S C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
0 A# R! `! V3 N3 i8 F' W
# H! v: u" U4 \' A Pinging 202.96.105.101 with 32 bytes of data: ; f8 i3 z: J7 t* p9 F
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 1 z- |5 P( D, g' G$ ^4 |
Route: 202.107.208.187 -> ) y' ]9 I. ?6 v# X: L
202.107.210.214 -> 9 F, x! v: ]; L7 e0 E, \
61.153.112.70 -> ' C$ F' Z4 F# h$ H( I
61.153.112.89 -> 1 ~, M" J8 l, f3 g5 A5 `% c
202.96.105.149 ->
. J @& W: ~, }4 p# e# ~3 F 202.96.105.97 -> . X, l! }0 o' o, b* g1 I9 J
202.96.105.101 -> 9 |9 Y; v5 a- p
202.96.105.150 -> ( {3 M F1 h2 F8 i. k0 g
61.153.112.90
( ^# t% W2 I2 t; u( i, z' o8 M
Y9 y+ L# y) Q0 r! v, n' |3 L, P Ping statistics for 202.96.105.101:
o& u0 J- ~5 A: y; B& D% ` Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 3 g6 A. v2 r- u
Approximate round trip times in milli-seconds:
D5 a3 |, r1 A, B \/ `8 ` Minimum = 10ms, Maximum = 10ms, Average = 10ms . L+ N, ?* E6 Z9 j% [- h2 V1 R# s
+ i L$ u) a* ?" T 从上面我就可以知道从我的计算机到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这几个路由。 2 F) z4 j3 E7 q; U7 t
5 C+ o& O; X% u/ {- p- f -s count Timestamp for count hops.
1 s3 A" ~# L) r- Z 指定 count 指定的跃点数的时间戳。
) _& N) n1 l y+ ? 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
* l+ g2 X. t( B9 }* ~ -j host-list Loose source route along host-list. - R- N/ d( O/ Q+ X3 X4 a
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 2 o9 G1 e' k9 I2 S5 d
( Y( M* B# R0 V -k host-list Strict source route along host-list.
; M( m9 R& ]9 H3 W/ F0 [& }利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
( O2 l. S: ]4 d# ` -w timeout Timeout in milliseconds to wait for each reply. & L; m- s0 m! Z+ }
指定超时间隔,单位为毫秒。
, ^, ~" x/ W5 e8 N6 J5 x' ~& k 此参数没有什么其他技巧。 1 ?4 R$ l' R$ I: K q2 D
9 `: n8 \( K V, i$ M+ G6 K" C# ]" c) [ ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:" C5 W5 ~' T1 [% I$ |1 R+ N
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
2 b/ f: z2 P4 l3 n* G; f "DefaultTTL"=dword:000000ff
/ d) c) o7 A8 ^- J 255---FF
$ F& {4 H1 f" y( R9 ] 128---80
/ \; f! o: Y4 L8 e- d! u) q 64----40
" l# n% \" F$ {3 K 32----20 |
|