计算机技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

  • 欢迎访问 计算机技术论坛-电脑迷与初学者的家园!由于论坛管理严格,新注册会员可能遇到各种问题,无法解决的请发邮件 admin@jsjbbs.cn
查看: 3118|回复: 5

[已解决] PING命令的使用?

[复制链接]
发表于 2009-6-29 11:23:23 | 显示全部楼层 |阅读模式
这些天用到了这个命令,对他不了解,求它的具体使用方法以及各个参数的介绍和功能
发表于 2009-6-29 11:49:30 | 显示全部楼层
1.Ping命令的语法格式

  ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法还真不容易,要达到熟练使用则更是难下加难,但不管怎样我们还得来看看它的真面目,首先我们还是从最基本的命令格式入手吧!

  ping命令的完整格式如下:

  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

  从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现对其参数作一下详细讲解吧!

  -t—— 有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你按下Control-C。

  -a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。

  -n count——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。

  -l length——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。

  -f—— 在数据包中发送“不要分段”标志,一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。

  -i ttl—— 指定TTL值在对方的系统里停留的时间,此参数同样是帮助你检查网络运转情况的。

  -v tos—— 将“服务类型”字段设置为 “tos” 指定的值。

  -r count—— 在“记录路由”字段中记录传出和返回数据包的路由。一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由。

  -s count——指定“count” 指定的跃点数的时间戳,此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

  -j host-list ——利用“ computer-list” 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔IP 允许的最大数量为 9。

  -k host-list ——利用 “computer-list” 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔IP 允许的最大数量为 9。

  -w timeout——指定超时间隔,单位为毫秒。

  destination-list ——是指要测试的主机名或IP地址

  2.Ping命令的应用

  (1)、测试网络的通畅
  我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用到,方法很简单,只需要在DOS或Windows的开始菜单下的“运行”子项中用ping命令加上所要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行ping命令的计算机在同一网络或通过电话线或其它专线方式已连接成一个网络),其它参数可全不加。如要测试台IP地址为196.168.1.21的工作站与服务器是否已连网成功,就可以在服务器上运行:ping -a 196.`68.123.56 即可,如果工作站上TCP/IP协议工作正常,即会以DOS屏幕方式显示如下所示的信息:

  Pinging cindy[196.168.1.21] with 32 bytes of data:
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Ping statisti for 196.168.1.21:
  Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
  Minimum = 0ms, Maximum = 0ms, Average = 0ms

  从上面我们就可以看出目标计算机与服务器连接成功,TCP/IP协议工作正常,因为加了“-a”这个参数所以还可以知道IP为196.168.1.21的计算机的NetBIOS名为cindy。

  如果网络未连成功则显示如下错误信息:

  Pinging[196.168.1.21 ] with 32 bytes of data
  Request timed out.
  Request timed out.
  Request timed out.
  Request timed out.
  Ping statistice for 196.168.1.21:
  Packets:Sent=4,Received =0,Lost\=4(100% loss),
  Approximate round trip times in milli-seconds
  Minimum=0ms,Maximum=0ms,Average=0ms

  为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的“Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 ”和“Request timed out”),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就是告诉你所发送的四个数据包的发送情况。

  出现以上错误提示的情况时,就要仔细分析一下网络故障出现的原因和可能有问题的网上结点了,一般首先不要急着检查物理线路,先从以下几个方面来着手检查:一是看一下被测试计算机是否已安装了TCP/IP协议;二是检查一下被测试计算机的网卡安装是否正确且是否已经连通;三是看一下被测试计算机的TCP/IP协议是否与网卡有效的绑定(具体方法是通过选择“开始→设置→控制面板→网络”来查看);四是检查一下Windows NT服务器的网络服务功能是否已启动(可通过选择“开始→设置→控制面板→服务”,在出现的对话框中找到“Server”一项,看“状态”下所显示的是否为“已启动”)。如果通过以上四个步骤的检查还没有发现问题的症结,这时再查物理连接了,我们可以借助查看目标计算机所接HUB或交换机端口的批示灯状态来判断目标计算机现网络的连通情况。

  (2)、获取计算机的IP地址

  利用ping这个工具我们可以获取对方计算机的IP地址,特别是在局域网中,我们经常是利用NT或WIN2K的DHCP动态IP地址服务自动为各工作站分配动态IP地址,这时当然我们要知道所要测试的计算机的NETBIOS名,也即我们通常在“网络邻居”中看到的“计算机名”。使用ping命令时我们只要用ping命令加上目标计算机名即可,如果网络连接正常,则会显示所ping的这台机的动态IP地址。其实我们完全可以在互联网使用,以获取对方的动态IP地址,这一点对于黑客来说是比较有用的,当然首先的一点就是你先要知道对方的计算机名。

  (3)、上述应用技巧其实重点是Ping 命令在局域网中的应用,其实Ping命令不仅在局域网中广泛使用,在Internet互联网中也经常使用它来探测网络的远程连接情况。平时,当我们遇到以下两种情况时,需要利用Ping工具对网络的连通性进行测试。比如当某一网站的网页无法访问时,可使用Ping命令进行检测。另外,我们在发送E-mail之前也可以先测试一下网络的连通性。许多因特网用户在发送E-mail后经常收到诸如“Returned mail:User unknown”的信息,这说明您的邮件未发送到目的地。为了避免此类事件再次发生,所以建议大家在发送E-mail 之前先养成Ping对方邮件服务器地址的习惯。例如,当您给163网站邮件用户发邮件时,可先键入“ping 163.com”(其实163.com就是网易的其中一台服务器名)进行测试,如果返回类似于“Bad IP address 163.com”或“Request times out”或“Unknow host 163.com”等的信息,说明对方邮件服务器的主机未打开或网络未连通。这时即使将邮件发出去,对方也无法收到。
发表于 2009-6-29 11:56:21 | 显示全部楼层
Ping概述:
  
何为ping?

  
  是DOS命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢
  PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
  它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。
  Ping 是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。
  ping指的是端对端连通,通常用来作为可用性的检查,
  但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。
  严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。


PING命令参数详解
  1、-a 解析计算机NetBios名。
  [1]示例:
  C:\>ping -a 192.168.1.21
  Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
  Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
  Ping statistics for 192.168.1.21:
  Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
  Minimum = 0ms, Maximum = 0ms, Average = 0ms
  从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
  2、n count 发送count指定的Echo数据包数。
   在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
  C:\>ping -n 50 202.103.96.68
  Pinging 202.103.96.68 with 32 bytes of data:
  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  Request timed out.
  ………………
  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
  Ping statistics for 202.103.96.68:
  Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
  Minimum = 40ms, Maximum = 51ms, Average = 46ms
  从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
  3、-l size . 定义echo数据包大小。
  在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
  C:\>ping -l 65500 -t 192.168.1.21
  Pinging 192.168.1.21 with 65500 bytes of data:
  Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
  Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
  ………………
  这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,曾做过这样的试验,当同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
  4、-f 在数据包中发送“不要分段”标志。
  在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
  5、-i TTL 指定TTL值在对方的系统里停留的时间。
  此参数同样是帮助你检查网络运转情况的。
  6、-v TOS 将“服务类型”字段设置为 tos 指定的值。
  7、-r count 在“记录路由”字段中记录传出和返回数据包的路由。
  在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现。
  C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
  Pinging 202.96.105.101 with 32 bytes of data:
  Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
  Route: 202.107.208.187 ->
  202.107.210.214 ->
  61.153.112.70 ->
  61.153.112.89 ->
  202.96.105.149 ->
  202.96.105.97 ->
  202.96.105.101 ->
  202.96.105.150 ->
  61.153.112.90
  Ping statistics for 202.96.105.101:
  Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
  Approximate round trip times in milli-seconds:
  Minimum = 10ms, Maximum = 10ms, Average = 10ms
  从上面我就可以知道从我的计算机到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这几个路由。
  8、-s count 指定 count 指定的跃点数的时间戳。
  此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
  9、-j host-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
  10、-k host-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
  11、-w timeout 指定超时间隔,单位为毫秒。
  12、-t--连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。
  
ping命令的其他技巧
  在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
  "DefaultTTL"=dword:000000ff
  255---FF
  128---80
  64----40
  32----20
  在网络没有问题,却无法PING通时可能有以下一些情况。
  1.太心急。即网线刚插到交换机上就想Ping通网关,忽略了生成树的收敛时 间。当然,较新的交换机都支持快速生成树,或者有的管理员干脆把用户端口(access port)的生成树协议关掉,问题就解决了。
  2.访问控制。不管中间跨越了多少跳,只要有节点(包括端节点)对ICMP进行了过滤,Ping不通是正常的。最常见的就是防火墙的行为。
  3.某些路由器端口是不允许用户Ping的。
  还遇到过这样的情形,更为隐蔽。
  1.网络因设备间的时延太大,造成ICMP echo报文无法在缺省时 间(2秒)内收到。时延的原因有若干,比如线路(卫星网时延上下星为540毫秒),路由器处理时延,或路由设计不合理造成迂回路径。使用扩展Ping,增加timed out时 间,可Ping通的话就属路由时延太大问题。
  2.引入NAT的场合会造成单向Ping通。NAT可以起到隐蔽内部地址的作用,当由内Ping外时,可以Ping通是因为NAT表的映射关系存在,当由外发起Ping内网主机时,就无从查找边界路由器的NAT表项了。
  3.多路由负载均衡场合。比如Ping远端目的主机,成功的reply和timed out交错出现,结果发现在网关路由器上存在两条到目的网段的路由,两条路由权重相等,但经查一条路由存在问题。
  4.IP地址分配不连续。地址规划出现问题象是在网络中埋了地雷,地址重叠或掩码划分不连续都可能在Ping时出现问题。比如一个极端情况,A、B两台主机,经过多跳相连,A能Ping通B的网关,而且B的网关设置正确,但A、B就是Ping不通。经查,在B的网卡上还设有第二个地址,并且这个地址与A所在的网段重叠。
  5.指定源地址的扩展Ping。登陆到路由器上,Ping远程主机,当ICMP echo request从串行广域网接口发出去的时候,路由器会指定某个IP地址作为源IP,这个IP地址可能不是此接口的IP或这个接口根本没有IP地址。而某个下游路由器可能并没有到这个IP网段的路由,导致不能Ping通。可以采用扩展Ping,指定好源IP地址。
  当主机网关和中间路由的配置认为正确时,出现Ping问题也是很普遍的现象。此时应该忘掉"不可能"几个字,把Ping的扩展参数和反馈信息、traceroute、路由器debug、以及端口镜像和Sniffer等工具结合起来进行分析。
  比如,当A、B两台主机经过多跳路由器相连时,二者网关设置正确,在A上可以Ping通B,但在B上不能Ping通A。可以通过在交换机做镜像,并用Sniffer抓包,来找出ICMP 报文终止于何处,报文内容是什么,就可以发现ICMP报文中的源IP地址并非预期的那样,此时很容易想象出可能是路由器的NAT功能使然,这样就能够逐步地发现一些被忽视的问题。而Ping不通时的反馈信息是"destination_net_unreachable"还是"timed out"也是有区别的
 楼主| 发表于 2009-6-30 09:22:54 | 显示全部楼层
谢谢,保存好好阅读
发表于 2009-7-3 14:26:58 | 显示全部楼层
还有ping    127.0.0.1啊   ping 自己的IP啊   ping网关啊     ping   dns啊     ping 域名啊  
  不同的现象可以判断不同的故障
发表于 2009-12-27 13:35:42 | 显示全部楼层
不错不错学习 了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

无图版|手机版|计算机技术论坛 JSJBBS.CN @ 2008-2024 ( 鲁ICP备17021708号 )

技术支持 : 北京康盛新创科技有限责任公司

快速回复 返回顶部 返回列表