51CTO技术论坛 » Windows » ping        上一帖     下一帖    查看完整版本

页: [1]

xhh_01682008-7-16 16:52
ping

系统内置的网络测试工具ping
W8Yw EZ#Mv%r
?p Y#z$C{ 1.Ping命令的语法格式
7j,~4D{bH9kH
yI\sN nj&s ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法还真不容易,要达到熟练使用则更是难下加难,但不管怎样我们还得来看看它的真面目,首先我们还是从最基本的命令格式入手吧!
"JA?/]6\4H5K YR2m I t)T
ping命令的完整格式如下: SRKT?d
S!EbR&c;_e\(M.OA
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j -Host list] | [-k Host-list] [-w timeout] destination-list Vv-I4_6kB6Q'su };V N"p

y v0J-zj 从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现对其参数作一下详细讲解吧!
%w;Cr}TRI8fyn
YhO:K1J.Ba8g"O/f -t—— 有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你按下Control-C。 "f*x\zLr&V
`(J[ J$JH r|
-a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。
8tu{!K-? x6V_9r
b.ELE5o -n count——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。
WUD$tpL&|
p.h ul/QT ywo(I -l length——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。 +B;CZ&X`!J w;s.V
$Xo)Ii'Q
-f—— 在数据包中发送“不要分段”标志,一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。 3scQF;PDQM

a!ui#m_ TeG5X(^ Zl$P -i ttl—— 指定TTL值在对方的系统里停留的时间,此参数同样是帮助你检查网络运转情况的。
kV1b)M&zlT G c ~ &R%] Ge"}3@-D){
-v tos—— 将“服务类型”字段设置为 “tos” 指定的值。
~)\R.B4j ay(~ A7E^+_Z
-r count—— 在“记录路由”字段中记录传出和返回数据包的路由。一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由。
9C0C4n#{q&Q'n (]A] AO1_
-s count——指定“count” 指定的跃点数的时间戳,此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
0_o^ MY /II"Z)B sHE
-j host-list ——利用“ computer-list” 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔IP 允许的最大数量为 9。 kd-U8]R+DQ

[EW'Ze&_%b_ -k host-list ——利用 “computer-list” 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔IP 允许的最大数量为 9。 0R TC6q U\]:x1K3I
~JRT ^e#{
-w timeout——指定超时间隔,单位为毫秒。
4WvzUK)O'Y*`(J B"t7t#~$qwp@
destination-list ——是指要测试的主机名或IP地址
Lpzdh
8s{@N\"t$c)s ? E B -t参数
M1u9{;C:NT/z-KXA.j
&F/ic/Tn t -t—— 有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你按下Control-C。 UK Ip,P8XT}
例如: :P MAq/Y e+B z`x
!K-B:bB-{dU9o"RZo
)U.q[Ua\ bqK
C:\WINDOWS>ping 192.168.1.188 -t
9`^$_-c0OvG
7YE/ieZ'X Pinging 192.168.1.188 with 32 bytes of data: 7U'II'Y'jZ"y5a O4d

a_1S[3h&l'A1z!f j Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 9Z!j&W0^2O3VbqD i;h
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
C-~6s0E6Pc@bMvV Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
&C,g_Kl.b Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 (uvA%{m!n
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 Rt_8rf.\-A
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 'l8Bt:K0Isdz
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 6u e2uHH'~
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 'g.MSFW"M

/_N S fO%`+r ye1B;~T Ping statistics for 192.168.1.188: 0w9}Z6HG-@
Packets: Sent = 8, Received = 8, Lost = 0 (0% loss), l.w(RC6p,A+w`*I4X,T
Approximate round trip times in milli-seconds: {cC4x z_X)@
Minimum = 0ms, Maximum = 0ms, Average = 0ms @(P;bT+t ^(~O$\T
Control-C
`?I:iqo9w
{ r*~ bU u@-Z -a参数
"{"b$v7O*m,d_
1k;Q\jC -a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。
7f/n$Q\"Oe$z;y yzmG i$[umk
例如: 3h;T9\GI Z:p6{.r:G[
C:\WINDOWS>ping -a 192.168.1.100
} w8VaT(Q [ IG-} Jy sy;R${
Pinging 000 [192.168.1.100] with 32 bytes of data: Efs+@L+G

F*]W/UW+m.b+];}u/qY Reply from 192.168.1.100: bytes=32 time<10ms TTL=128 /oc!fsh+~-}
Reply from 192.168.1.100: bytes=32 time<10ms TTL=128 "GL}:LN
Reply from 192.168.1.100: bytes=32 time<10ms TTL=128
;W0h#i_6y Reply from 192.168.1.100: bytes=32 time<10ms TTL=128 Z \8vd S'k

\P3N'x*~u Ping statistics for 192.168.1.100: 7II$u,hfh]
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
.yIR^2NG#[ Approximate round trip times in milli-seconds: ~g'QD?![*j(Y
Minimum = 0ms, Maximum = 0ms, Average = 0ms
#B7e+d~h i q 可以得知:
Uf{ mG,g4^ ip 为192.168.1.100的计算机,NETBIOS名为000 \rW*s`w _
1MH:i%N.p ogA.T^
再如:
#DUK+| ` [XL%@ C:\WINDOWS>ping -a 192.168.0.23
|(t`]~,J"\k &P"E2x_n,EYm D
Pinging 9.localdomain [192.168.0.23] with 32 bytes of data:
UF:hyZ,~*V? 3`2J*Y{\
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
L8U r?7J2f~ Reply from 192.168.0.23: bytes=32 time<10ms TTL=128 n f;Y`VrR
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128 e-d6u4{|;L/z
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
H!Z|j3@ v-uh|/W :lV FB+j9bo
Ping statistics for 192.168.0.23: /x C7|k4|_
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), ;t'} Jksp$a
Approximate round trip times in milli-seconds: g m(] ^4A@
Minimum = 0ms, Maximum = 0ms, Average = 0ms
x Dv-o6o%H4Gc 可以得知: z%JY5U6w
ip 为192.168.0.23的计算机,NETBIOS名为9
8W:W6i:DLI7l9s
3Alg#v+{o5U -n参数
9Z ^#LE@&Xc -n count——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。
0UI E aRyC!U
?(F_U fM7I2M Fk6{ 例如:
Ca+`dG"B.zD6\ C:\WINDOWS>ping -n 10 192.168.1.188 @(C%a`i!R{\

XguW2N.e Pinging 192.168.1.188 with 32 bytes of data: !U(fi?!U#z p)ik
!|L6j `)ks'pZ&JM u
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
ekK-H,W o+th Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
gGD'E1_jO1^(P| Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 eeJif9P(aW Y1j}/h
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 ~ r;B;L#I"R2E3I e5q
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 !P4`|{} I Y
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64 _&rvU2b-[j!k2Ga7|
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
&H @5p_%^-k9V Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
4\:uGcGl Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
6^?:}9~1ga8Q Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
8F0F]sNq$k(fL -F1Q:s:l'x{0p
Ping statistics for 192.168.1.188: O8or^#WXM oB9l A
Packets: Sent = 10, Received = 10, Lost = 0 (0% loss) Fx}KK~]s
Approximate round trip times in milli-seconds: fQGQ @v O
Minimum = 0ms, Maximum = 0ms, Average = 0ms c5H*G0C9Ke]\
g4@4h'b"`!rmK
向IP为192.168.1.188的计算机,发送10个数据包,发送10个,返回10个,没有丢包。
X B E\DLq Op4z
St }7t7T?^7v -l参数 *G's2BJ4G0_ Pus
-l length——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。
'`P,v*s7Z/]v
RM5WrF'[2y6m'B| 例如: l:Yd$J.Y [
C:\WINDOWS>ping -l 32768 -n 10 192.168.1.188 #t^ K ?)]Nk

%i@~$y4XJ h&x Pinging 192.168.1.188 with 32768 bytes of data: 0]5I;l` pW9y
h,[,y,`fO
Request timed out. "ddYM9uP@
Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64 _8q-sC+|k_)S}x
Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64
o'F iV$E-A`wN Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64
uQ'Wf5Er Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64
^ Z$AxtP q,P Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64
$mcuu^L$~(L~ m T Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64 ;K m Fv'Q+{
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64 bI5aD0Hudl
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64 }7_S V'J(Wg7V-II
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64 :\B,^*th

x^T'})FVbX Ping statistics for 192.168.1.188:
xUq4?w-co(?k Packets: Sent = 10, Received = 9, Lost = 1 (10% loss), mB/y(k;v6r
Approximate round trip times in milli-seconds: Quu(iDZ"h
Minimum = 9ms, Maximum = 12ms, Average = 9ms 8T6c:Z"p M |(z \/_
*P3m}A0?0wY$Lb*\
向IP为192.168.1.188的计算机,发送大小为32768byt的数据包10个,发送10个,返回9个,丢失1个。返回数据包最短时间为9ms,最长时间为12ms。 'X1N^Huy

Vmq?P6|A;Jd6u
} ^'l:W.IR :i:p-|3^7I U,[
2.Ping命令的应用
ID;A-XW5e(b u
ld:{KwoX (1)、测试网络的通畅
t V[k5Y 我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用到,方法很简单,只需要在DOS或Windows的开始菜单下的“运行”子项中用ping命令加上所要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行ping命令的计算机在同一网络或通过电话线或其它专线方式已连接成一个网络),其它参数可全不加。如要测试台IP地址为196.168.0.23的工作站与服务器是否已连网成功,就可以在服务器上运行:ping -a 196.168.0.23 即可,如果工作站上TCP/IP协议工作正常,即会以DOS屏幕方式显示如下所示的信息:
i] }2[z9C \a
m)AW `;UR%Q C:\WINDOWS>ping -a 192.168.0.23 ED,exB3zWRg
0l%C\nA@IZl
Pinging 9.localdomain [192.168.0.23] with 32 bytes of data:
0{E K vb? N8D[l3V]z
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128 j K b _h8]&[*`
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128 ~)m;xM7Y!j'M
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
r&| qs;tm&bx Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
1F Z+R'M6x)ep
"MyPQ2Wj0[K Ping statistics for 192.168.0.23:
5o-Vs*Kk;zIA4n&@8y"Y Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
k&L4hcc,h)T Approximate round trip times in milli-seconds:
$V/o;o%B@R{5d Minimum = 0ms, Maximum = 0ms, Average = 0ms f ERO4ow
5p `U kB*zS
从上面我们就可以看出目标计算机与服务器连接成功,TCP/IP协议工作正常,因为加了“-a”这个参数所以还可以知道IP为196.168.0.23的计算机的NetBIOS名为9。
j$Vq R/cY$RZv ^/@/S&B#SG U
IZ7c;NI
下面我们来PING IP为192.168.0.1的计算机,如果网络未连成功则显示如下错误信息:
;Q)SHt pd4Xs C:\WINDOWS>ping 192.168.0.1
W}+h'GAr1l\)u
q@2wevt|&p1bA.^&Z Pinging 192.168.0.1 with 32 bytes of data: 8u$I9qyV7oRQN

^D9A4r(a Request timed out. (T'\u TT a]
Request timed out.
K)A~{4RE x Request timed out.
4D.N}.e%[PT7Ek Request timed out. (m3D1^*I FC UO

&jT1]QG2g-V-tN:w Ping statistics for 192.168.0.1: 0ylO&mg
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), ttN#` v4d9ft0D
Approximate round trip times in milli-seconds: O M u|3Y
Minimum = 0ms, Maximum = 0ms, Average = 0ms
@zG0@vCHDq +cKX%]2p2Z
为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的“Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64”和“Request timed out”),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就是告诉你所发送的四个数据包的发送情况。 \cD2T.oX

j l*b [$q[6o1j$W (2)、获取计算机的IP地址 /_l9^had
|^ KN U t F#t&?
利用ping这个工具我们可以获取对方计算机的IP地址,特别是在局域网中,我们经常是利用NT或WIN2K的DHCP动态IP地址服务自动为各工作站分配动态IP地址,这时当然我们要知道所要测试的计算机的NETBIOS名,也即我们通常在“网络邻居”中看到的“计算机名”。使用ping命令时我们只要用ping命令加上目标计算机名即可,如果网络连接正常,则会显示所ping的这台机的动态IP地址。其实我们完全可以在互联网使用,以获取对方的动态IP地址,这一点对于黑客来说是比较有用的,当然首先的一点就是你先要知道对方的计算机名。 0o|6`"a^)[*u}xs|

v N3Vk6[ y X 例如: Tt2?,Kl
C:\WINDOWS>ping [url]www.dt.sx.cn[/url]
:}$?:Gy4m h bU+IW1S%@
Pinging [url]www.dt.sx.cn[/url] [218.26.153.214] with 32 bytes of data: T6kC F/m}%QS h
/Ph,ri1[(eF7]_$b&t
Request timed out. uI;uN-?Y
Request timed out.
#O0n0[9{c?B Request timed out.
z)Yr SF!z-^ Request timed out.
i)O$d1znm!To$K
tD |#_~ Ping statistics for 218.26.153.214: Ty N6IK5@gB.}
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), Bww&K6i S(EM"l w
Approximate round trip times in milli-seconds:
4i5R^ij#H$DDk Minimum = 0ms, Maximum = 0ms, Average = 0ms
NC:}v Z
i#an4w|${4R&r ping [url]www.dt.sx.cn[/url],得到[url]www.dt.sx.cn[/url]的计算机,IP为218.26.153.214。 /eBWMqs-E(j
X!o,a7G0M| KiXJ,e$kbj
v5Xnmy1NP0nK
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现。

lyl152008-7-18 06:05
学习一下

tomsli19822008-7-18 11:41
总结得不错,顶下

IT学童ye2008-7-19 00:02
很好哦,值得学习。说不定以后用到,这样方便很多。谢谢楼主!!

aiyaya72008-7-30 06:05
ping··

lovejr1202008-7-31 02:23
学习了

whx06242008-7-31 03:42
不错

书面意思还好
2?E.aO_/_;F d?r 有些参数用法有的不清晰1D|+F{*T#L0@
最好是把ICMP 协议的几个命令都解释一下
g X,UF&u 这样多大家都有帮助



相关文章:
一个美国老网络工程师
Windows终端连接器加强版
ie7更新后不能启动
IE7不能修改首页!大家都用什么办法改?
Windows下DLL编程技术及应用

查看完整版本: ping


Powered by 51CTO.COM