Ping是Windows、Unix和Linux系统下的一个命令。
ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。
PING(PacketInternetGroper),因特网包探索器,用于测试网络连接量的程序。
Ping发送一个ICMP(InternetControlMessagesProtocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMPecho(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
ping指的是端对端连通,通常用来作为可用性的检查,但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。
注:有些地区的某些地址是禁止PING的,就会出现PING不通的情况。
二、使用方法
1、IP地址或者域名:要PING的目的地址。
2、协议栈:可选择IPV4或IPV6协议。
3.协议类型:可选ICMP或TCP,选择TCP协议时需要填写端口号(路由版本3.7.10及以上支持使用此功能)。
4、指定源地址PING:这个地址指的是爱快路由上面接口的地址;
比如LAN1或WAN1或WAN2等(默认不填即可)
5、PING包次数:输入数值是多少,就显示多少ping的结果。
三、举例
ping百度地址
四、知识扩展
具体方式是,开始--运行--cmd,在调出的dos窗口下输入ping空格+你要ping的网址,回车。
比如“pingXXX网址”之后屏幕会显示类似信息
PingXXX网址[61.135.169.105]with32bytesofdata:
Replyfrom61.135.169.105:bytes=32time=1244msTTL=46
Replyfrom61.135.169.105:bytes=32time=1150msTTL=46
Replyfrom61.135.169.105:bytes=32time=960msTTL=46
Replyfrom61.135.169.105:bytes=32time=1091msTTL=46
查看本地的TCP/IP协议是否设置好,输入命令:ping空格127.0.0.1
正在Ping127.****具有32字节的数据:
来自********************************************
127.0.0.1的ping统计信息:
数据包:已发送=4,已接收=4,丢失=0〈0%丢失〉,
最短=0ms,最长=0ms,平均=0ms
本机IP
例如本机IP地址为:172.168.200.2。则执行命令Ping172.168.200.2。如果网卡安装配置没有问题,则应有类似下列显示:
Replyfrom172.168.200.2bytes=32time<10ms
Pingstatisticsfor172.168.200.2
PacketsSent=4Received=4Lost=00%loss
Approximateroundtriptimesinmilli-seconds
Minimum=0msMaximum=1msAverage=0ms
假定网关IP为:172.168.6.1,则执行命令Ping172.168.6.1。在MS-DOS方式下执行此命令,如果显示类似以下信息:
Replyfrom172.168.6.1bytes=32time=9msTTL=255
Pingstatisticsfor172.168.6.1
PacketsSent=4Received=4Lost=0
Minimum=1msMaximum=9msAverage=5ms
Replyfrom202.102.48.141bytes=32time=33msTTL=252
Replyfrom202.102.48.141bytes=32time=21msTTL=252
Replyfrom202.102.48.141bytes=32time=5msTTL=252
Replyfrom202.102.48.141bytes=32time=6msTTL=252
Pingstatisticsfor202.102.48.141
Minimum=5msMaximum=33msAverage=16ms
则表明运行正常,能够正常接入互联网。反之,则表明主机文件(windows/host)存在问题。
1.对方服务器(IP)确实与外网断开连接;
2.对方服务器拒绝Ping入;
3.对方服务器拒绝Ping出;
4.自己计算机与外网已经断开连接。
参照ping命令的帮助说明来说说使用中会需要的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
ping[-t][-a][-ncount][-llength][-f][-ittl][-vtos][-rcount][-scount][-jcomputer-list]|[-kcomputer-list][-wtimeout]destination-list
说明:通常情况下,XP以上系统的ping命令帮助显示的是中文,故无需翻译。
Options:
-tPingthespecifiedhostuntilstoppedToseestatisticsandcontinue-typeControl-Break;Tostop-typeControl-C.
不停的ping对方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
-aResolveaddressestohostnames.
解析计算机NetBios名。
示例:C:>ping-a192.168.1.21
Pingingiceblood.yoforcom[192.168.1.21]with32bytesofdata:
Replyfrom192.168.1.21:bytes=32time<10msTTL=254
Pingstatisticsfor192.168.1.21:
Packets:Sent=4,Received=4,Lost=0(0%loss),Approximateroundtriptimesinmilli-seconds:
Minimum=0ms,Maximum=0ms,Average=0ms
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yoforcom。
-ncountNumberofechorequeststosend.
发送count指定的Echo数据包数。
C:>ping-n50202.103.96.68
Pinging202.103.96.68with32bytesofdata:
Replyfrom202.103.96.68:bytes=32time=50msTTL=241
Requesttimedout.
………………
Pingstatisticsfor202.103.96.68:
Packets:Sent=50,Received=48,Lost=2(4%loss),Approximateroundtriptimesinmilli-seconds:
Minimum=40ms,Maximum=51ms,Average=46ms
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
-lsizeSendbuffersize.
定义echo数据包大小。
C:>ping-l65500-t192.168.1.21
Pinging192.168.1.21with65500bytesofdata:
Replyfrom192.168.1.21:bytes=65500time<10msTTL=254
这样它就会不停的向192.168.1.21计算机发送大小为65500byte的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
-fSetDon<|>tFragmentflaginpacket.
在数据包中发送“不要分段”标志。
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
-iTTLTimeToLive.
此参数同样是帮助你检查网络运转情况的。
-vTOSTypeOfService.
将“服务类型”字段设置为tos指定的值。
-rcountRecordrouteforcounthops.
在“记录路由”字段中记录传出和返回数据包的路由。
C:>ping-n1-r9202.96.105.101(发送一个数据包,最多记录9个路由)
Pinging202.96.105.101with32bytesofdata:
Replyfrom202.96.105.101:bytes=32time=10msTTL=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
Pingstatisticsfor202.96.105.101:
Packets:Sent=1,Received=1,Lost=0(0%loss),
Approximateroundtriptimesinmilli-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这几个路由。
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
-jhost-listLoosesourceroutealonghost-list.
利用computer-list指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP允许的最大数量为9。
-khost-listStrictsourceroutealonghost-list.
利用computer-list指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP允许的最大数量为9。
-wtimeoutTimeoutinmillisecondstowaitforeachreply.
此参数没有什么其他技巧。
另外在win7中
-4强行使用IPv4
-6强行使用IPv6
那样在局域网中知道对方主机名字就可知道他们的IPv4地址和IPv6地址了
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
[HKEY_LOCAL_MACHINEsystemCurrentControlSetServicesTcpipParameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20
Ping是个使用频率极高的网络诊断程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据包。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
Ping的返回信息有"RequestTimedOut"、"DestinationNetUnreachable"和"BadIPaddress"还有"Sourcequenchreceived"。
"RequestTimedOut"这个信息表示对方主机可以到达到TIMEOUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。
"DestinationNetUnreachable"这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下"destinationhostunreachable"和"timeout"的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现"timeout",如果路由表中连到达目标的路由都没有,那就会出现"destinationhostunreachable"。
"BadIPaddress"这个信息表示你可能没有连接到DNS服务器所以无法解析这个IP地址,也可能是IP地址不存在。
"Sourcequenchreceived"信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
怎样使用Ping这命令来测试网络连通呢?
连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。
首先我们讲一下使用Ping命令的步骤。
使用Ping检查连通性有六个步骤:
1.使用ipconfig/all观察本地网络设置是否正确;
3.Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;
4.Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)
5.Ping本地DNS地址,这样做是为了检查本地DNS服务器是否工作正常。
6.Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。
在检查网络连通的过程中可能出现一些错误,这些错误总的来说分为两种最常见。
1.RequestTimedOut
"requesttimeout"这提示除了在《PING(一)》提到的对方可能装有防火墙或已关机以外,还有就是本机的IP不正确和网关设置错误。
①、IP不正确:
IP不正确主要是IP地址设置错误或IP地址冲突,这可以利用ipconfig/all这命令来检查。在WIN2000下IP冲突的情况很少发生,因为系统会自动检测在网络中是否有相同的IP地址并提醒你是否设置正确。在NT中不但会出现"requesttimeout"这提示而且会出现"Hardwareerror"这提示信息比较特殊不要给它的提示所迷惑。
②、网关设置错误:这个错误可能会在第四个步骤出现。网关设置错误主要是网关地址设置不正确或网关没有帮你转发数据,还有就是可能远程网关失效。这里主要是在你Ping外部网络地址时出错。错误表现为无法Ping外部主机返回信息"Requesttimeout"。
2.DestinationHostUnreachable
还有一个比较特殊就是路由返回错误信息,它一般都会在"DestinationHostUnreachable"前加上IP地址说明哪个路由不能到达目标主机。这说明你的机器与外部网络连接没有问题,但与某台主机连接存在问题。
Linux的ping语法和Windows的差不多
但是Linux的Ping数据包是64bytes的而Windows的是32byte
Windows下默认发送四次数据包,完了之后自己结束,Linux下的ping程序默认不停发送数据包,直到你手动停止。(停止指令是ctrl+c)
返回数据格式不同
ping[-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
-ccount在发送(和接收)了正好数量为count的回显应答分组后停止操作。在发送了count个分组后没有收到任何分组的特别情况是发送导致了终止(选程主机或网关不可达)。
-d在所用的套接字上使用SO_DEBUG选项。
-f以高速方式来作ping。以分组返回的速度来输出其它分组或每秒输出百次。当收到每个回显应答并打印一个退格符时,对每个回显请求都打印一个句点``.''。这可以快速显示出丢弃了多少个分组,只有超级用户可以用这个选项。这(操作)对网络要求非常苛刻,应该慎重使用。
-iwait在发送每个分组时等待wait个秒数。缺省值为每个分组等待一秒。此选项与-f选项不能同时使用。
-lpreload如果指定preload,那么ping程序在开始正常运行模式前尽可能快地发送分组。同样只有超级用户可以用这个选项。
-n只以数字形式输出信息。这样就不尝试去查找主机名了。
-q静态输出。在程序启动和结束时只显示摘要行。
-R记录路由。在回显请求分组中包含记录路由选项并在相应的分组返回时显示路由缓冲区。注意IP首部的容量只能存放9条这样的路由。很多主机忽略或禁用此选项。
-t存活数值:设置存活数值TTL的大小。
linux的不是ipconfig/all而是ifconfig
1.使用ifconfig观察本地网络设置是否正确;
5.Ping本地DNS地址,这样做是为了检查DNS是否能够将IP地址解析。
Requesttimedout
a.对方已关机:比如在上图中主机A中PING192.168.0.7,或者主机B关机了,在主机A中PING192.168.0.5都会得到超时的信息。
b.对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。
c.对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)
怎样知道对方是存在,还是不存在呢,可以用带参数-a的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。
d.错误设置IP地址
正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。但如果一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机器时,会存在这样的问题:
A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。
B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping就会给出一个“超时无应答”的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。
DestinationhostUnreachable
对方与自己不在同一网段内,而自己又未设置默认的路由,或者网络上根本没有这个地址,比如上例中A机中不设定默认的路由,运行Ping192.168.1.4就会出现“DestinationhostUnreachable”。
网线出了故障
这里要说明一下“destinationhostunreachable”和“timeout”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“timeout”,如果路由表中连到达目标的路由都没有,那就会出现“destinationhostunreachable”。
BadIPaddress
这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。
Sourcequenchreceived
这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
Unknownhost——不知名主机
这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
Noanswer——无响应
Ping127.0.0.1:127.0.0.1是本地循环地址
如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。