Ping是一种被广泛使用的网络诊断工具,是TCP/IP协议的一部分,工作在 应用层 。Ping命令在Windows、 unix 和 Linux 系统下都可使用,能够帮助用户检查网络是否连通,分析和判断网络故障。
Ping的应用场景包括网络连通性测试、网络延迟测量、 路由 跟踪、 网络性能 评估等,是网络故障诊断和性能评估中的基础工具之一,凭借其简便性和有效性,Ping在网络管理和维护工作中占有不可或缺的地位。 Ping通过发送ICMP(Internet Control Message Protocol,因特网报文控制协议)回显请求(Echo Request)消息到指定的IP地址或 域名 ,并 监听 回显应答(Echo Reply)消息,来测试网络接口间的连通性。
定义
ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等。Ping命令可以进行以下操作 :
①通过将ICMP(Internet控制消息协议)回显数据包发送到 计算机 并侦听回显回复数据包来验证与一台或多台远程计算机的连接。
②每个发送的数据包最多等待一秒。
③打印已传输和接收的数据包数。
需要注意的是,Ping成功并不一定就代表TCP/IP配置正确,有可能还要执行大量的本地主机与远程主机的数据包交换,才能确信TCP/IP配置的正确性。如果执行ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,ping成功只保证当前主机与目的主机间存在一条连通的物理路径 。
实现方式
ICMPPing
ICMP是一种将差错与控制集于一体的协议,不仅用于传输差错报文,还用于消息控制报文。它与IP协议相互依赖:IP在发送一个差错或控制报文时要用到ICMP,而ICMP利用IP来传递报文 。
ICMP报文分为信息报文、差错报文、控制报文。信息报文一般由客户端发出,例如用于测试目的地址可达性的回应请求/应答报文;而差错报文一般由服务器或是 路由器 发出,表示网络或主机不能完成要求的服务。当发送一份ICMP差错报文时,文始终包含了IP首部和产生ICMP差错报文的IP 数据报 的前8个 字节 。
ICMP Ping就是向目标主机发送ICMP信息报文,目标主机(有时是路由器)回应ICMP信息报文或差错报文,Ping程序根据这些收到的ICMP报文,以知道目标主机的可达性。可用于Ping的信息报文有:回应请求与响应报文、 时间戳 请求与响应报文和掩码请求与响应报文 。
TCPPing
在进行ICMPPing的时候,如果在目标主机的网络网关过滤了ICMP Ping包,ICMPPing的结果就不准确了。此时,应该考虑其他方式,如TCPPing、LIDPPing。TCP的功能是在一对ULP(UpperLayerProtocol,高层协议)之间提供的 数据报 服务基础上,建立可靠的端对端连接,并提供虚电路服务和面向数据流的传输服务。TCP中的基本传输单元是段( Segment ),一个TCP段由段头和数据流两部分组成 。
在TCP协议中,SYN包用来表示建立连接请求。如果对方端口处在listening状态,就会回送ACK包,并附上自己的ISN。但是如果对方端口是关闭的,它会发回一个RST包,表示应该马上断开连接(少数情况下会发回一个同时置SYN和ACK位的包)。如果人们向一个端口发送ACK包,而事先没有与此端口建立连接,那么,无论端口是否打开,它都会回送一个RST包。所以可以看出,无论这个端口是否打开,总会有某一种数据包返回,以此可以判定目标主机可达。而目标主机如果不可达, 路由器 就会向扫描主机发送目的地不可达的ICMP报文。这样,通过向目标主机发送TCPSYN包或TCPACK包就可以准确判断目标主机是否可达,而且根据RFC793(TCP),目标主机(或路由器)都无法屏蔽TCPSYN包和TCPACK包,因此,TCPPing的准确性比ICMPPing的准确性要高。在实现的时候,需要利用 RAW Socket,定制TCP包并封装在IP包中。在 Linux 下,非 root 用户是没有此项权利的,同样 Windows 的非.Administrator组用户也不能直接填写TCP包头和IP包头 。
UDP Ping
在TCP/IP协议组中,用户 数据报 协议(UDP)提供应用进程之间数据报传送的基本机制。每个UDP报文不仅传送用户数据,而且还包括发送方和接收方的协议端口号 。
UDPPing与TCPPing的原理类似,通过RAWSocket定制UDP包,主要是格式化UDP包中的目的端口号,一般指定一个数量值很大的目的端口号(比如31558),很少应用程序用到数量值入的端口号,也就是说该端口很有可能是处于关闭状态。首先构建好UDP报文,然后递交给IP实体发送。如果目标主机不可达(网络不通或主机未打开),则 路由器 将发送一个目的不可达ICMP报文。而如果目标主机可达,在其接收数据时,其UDP实体首先判断接收到的目的端口号是否与当前使用的某端口号匹配,如果匹配,则将 数据报 放入到对应的接收 队列 ,否则如果目的端口号对应的端口关闭则丢弃该数据报,并回送一个“端口不可达”的ICMP报文,因此,只要目标主机可达,UDPPing程序将收到一个UDP回应包(也可能没有)或者“端口不可达”的ICMP报文而目标主机不可达,将收到“目的不可达’’的ICMP报文 。
概述
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议; 回声 请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通, 时延 是多少。
ping指的是端对端连通,通常用来作为 可用性 的检查,但是某些病毒 木马 会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑。
工作流程
人们以下面一个网络为例:有A、B、C、D四台机子,一台 路由 RA, 子网掩码 均为255.255.255.0,默认网关为192.168.0.1
1.在同一 网段 内
在主机A上运行“Ping 192.168.0.5”后,都发生了些什么呢? 首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.0.5”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.0.5”作为目的地 址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到192.168.0.5的 MAC 地址(物理地址,这是 数据链路层 协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通过机器B的IP地址和自己的 子网掩码 ,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有过通信,在A机的ARP 缓存 表应该有B机IP与其MAC的 映射 关系,如果没有,就发一个ARP请求广播,得到B机的MAC,一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本 机的物理地址,还要附加上一些控制信息,依据 以太网 的介质访问规则,将它们传送出去。
主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。
2.不在同一 网段 内
在主机A上运行“Ping 192.168.1.4”后,开始跟上面一样,到了怎样得到 MAC 地址时,IP协议通过计算发现D机与自己不在同一网段内,就直接将交由 路由 处理,也就是将路由的MAC取过来,至于怎样得到路由的MAC,跟上面一样,先在ARP 缓存 表找,找不到就广播。路由得到这个数据帧后,再跟主机D进行联系,如果找不到,就向主机A返回一个超时的信息。
实例讲解
ping就是对一个网址发送测试数据包,看对方网址是否有响应并统计响应时间,以此测试网络。
具体方式是,开始--运行--cmd,在调出的dos窗口下输入 ping 空格 + 你要ping的网址,回车。
比如“ pingXXX网址”之后屏幕会显示类似信息
Ping XXX 网址[61.135. 169. 105] with 32 bytes of 数据 :
Reply from 61.135.169.105: bytes=32 时间 =1244ms TTL=46
Reply from 61.135.169.105: bytes=32 time=1150ms TTL=46
Reply from 61.135.169.105: bytes=32 time=960ms TTL=46
Reply from 61.135.169.105: bytes=32 time=1091ms TTL=46
后面的time=1244ms 是响应时间,这个时间越小,说明你连接这个地址速度越快。
PING测试
查看本地的TCP/IP协议是否设置好,输入命令:ping 空格127.0.0.1 如果接受和发送的数据都 相等 那就是完好的(如下图):
图片文字对应翻译:
正在 Ping 127.****具有32 字节 的数据:
来自 127.0.*** 的回复:字节=32 时间〈1ms TTL=64
来自 ********************************************
127.0.0.1的ping 统计信息:
数据包:已发送=4,已接收=4,丢失=0 〈0%丢失〉,
往返行程的估计时间以毫秒为单位:
最短=0ms,最长=0ms,平均=0ms
本机IP
例如本机IP地址为:172.168.200.2。则执行命令Ping 172.168.200.2。如果 网卡 安装配置没有问题,则应有类似下列显示:
Reply from 172.168.200.2 bytes=32 time <10ms
Ping statistics for 172.168.200.2
Packets Sent=4 Received=4 Lost=0 0% loss
Approximate round trip times in milli-seconds
Minimum=0ms Maximum=1ms 平均数 =0ms
如果在MS-DOS方式下执行此命令显示内容为:Request timed out,则表明 网卡 安装或配置有问题。将网线断开再次执行此命令,如果显示正常,则说明本机使用的IP地址可能与另一台正在使用的机器IP地址重复了。如果仍然不正常,则表明本机网卡安装或配置有问题,需继续检查相关网络配置。
网关IP
假定网关IP为:172.168.6.1,则执行命令Ping 172.168.6.1。在 MS-DOS 方式下执行此命令,如果显示类似以下信息:
Reply from 172.168.6.1 byte s=32 time =9ms TTL=255
Ping statistics for 172.168.6.1
Packets Sent=4 Received=4 Lost=0
Approximate round trip times in milli-seconds
Minimum=1ms Maximum=9ms Average =5ms
则表明 局域网 中的网关 路由器 正在正常运行。反之,则说明网关有问题。
远程IP
这一命令可以检测本机能否正常访问Internet。比如本地 电信运营商 的IP地址为:202.102.48.141。在MS-DOS方式下执行命令:Ping 202.102.48.141,如果屏幕显示:
Reply from 202.102.48.141 bytes=32 time =33ms TTL=252
Reply from 202.102.48.141 bytes=32 time =21ms TTL=252
Reply from 202.102.48.141 bytes=32 time=5ms TTL=252
Reply from 202.102.48.141 bytes=32 time=6ms TTL=252
Ping statistics for 202.102.48.141
Packets Sent=4 Received=4 Lost=0 0% loss
Approximate round trip times in milli-seconds
Minimum=5ms Maximum=33ms 平均数 =16ms
则表明运行正常,能够正常接入互联网。反之,则表明主机文件(windows/host)存在问题。
特殊情况
1.对方服务器(IP)确实与 广域网 断开连接;
2.对方服务器拒绝Ping入;
3.对方服务器拒绝Ping出;
4.自己 计算机 与外网已经断开连接。
使用方法
对于 Windows 下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,和大家分享一下。
命令参数
参照 ping 命令的帮助说明来说说使用中会需要的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
ping [-t] [-a] [-n count ] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer- list] | [-k computer-list] [-w time out] destination-list
说明:通常情况下,XP以上系统的ping命令帮助显示的是中文,故无需翻译。
Options:
-t Ping the specified host until stopped To see statistics and continue - type ctrl Break;To stop - type Control-C.
不停的ping对方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
-a Resolve addresses to hostnames.
解析 计算机 NetBios名。
示例:C:\>ping -a 192.168.1.21
Pinging iceblood.yofor com [192.168.1.21] with 32 bytes of 数据 :
Reply from 192.168.1.21: byte s=32 时间 <10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: byte s=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 time s in milli-seconds:
Minimum = 0ms,Maximum = 0ms, 平均数 = 0ms
从上面就可以知道IP为192.168.1.21的 计算机 NetBios名为iceblood.yofor com。
-n count Number of echo requests to send.
发送count指定的Echo数据包数。
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
C:\>ping -n 50 202.103.96.68
Pinging 202.103.96.68 with 32 bytes of 数据 :
Reply from 202.103.96.68: bytes=32 时间 =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: byte s=32 time=50ms TTL=241
Ping statistics for 202.103.96.68:
Packets: Sent = 50,Received = 48,Lost = 2 (4% loss),Approximate round trip time s in milli-seconds:
Minimum = 40ms,Maximum = 51ms, 平均数 = 46ms
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
-l size Send buff er size.
定义echo数据包大小。
在默认的情况下windows的ping发送的数据包大小为32 字节 ,人们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byte,也许有人会问为什么要限制到65500byte,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能宕机,所以 微软 为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如人们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
C:\>ping -l 65500 -t 192.168.1.21
Pinging 192.168.1.21 with 65500 bytes of 数据 :
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 计算机 发送大小为65500 字节 的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全 瘫痪 ,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和 FTP 服务完全停止,由此可见威力非同小可。
-f Set Don<|>t Fragment flag in packet.
在数据包中发送“不要分段”标志。
TTL(生存时间值)
TTL的作用是限制IP数据包在 计算机 网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64。
在一般你所发送的数据包都会通过 路由 分段再发送给对方,加上此参数以后 路由 就不会再分段处理。
-i TTL Time To Live.
指定TTL值在对方的系统里停留的时间。
此参数同样是帮助你检查网络运转情况的。
-v TOS Type Of Service.
将“服务类型”字段设置为 tos 指定的值。
-r count Record route for count hops.
在“记录路由”字段中记录传出和返回数据包的路由。
在一般情况下你发送的数据包是通过一个个 路由 才到达对方的,但到底是经过了哪些 路由 呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
Pinging 202.96.105.101 with 32 bytes of 数据 :
Reply from 202.96.105.101: bytes=32 时间 =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, 平均数 = 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个。
-j host- list Loose source route along host-list.
利用 computer- list 指定的 计算机 列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k 宿主 list Strict source route along host-list.
利用 computer-list 指定的计算机列表 路由 数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w time out Timeout in milliseconds to wait for each reply.
指定超时间隔,单位为毫秒。
此参数没有什么其他技巧。
另外 在 Windows 7 中
-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_MACHINE\sys tem\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20
Ping是个使用频率极高的网络诊断程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据包。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次 数据报 交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的 数据报 交换,才能确信TCP/IP的正确性。
返回信息
Ping的返回信息有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"还有"Source quench received"。
"Request Timed Out"这个信息表示对方主机可以到达到 TIME OUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。
"Destination Net Unreachable"这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下"destination host unreachable"和" time out"的区别,如果所经过的 路由器 的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现" time out",如果路由表中连到达目标的 路由 都没有,那就会出现"destination host unreachable"。
"Bad IP address" 这个信息表示你可能没有连接到DNS服务器所以无法解析这个IP地址,也可能是IP地址不存在。
"Source quench received"信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
常见错误
在检查网络连通的过程中可能出现一些错误,这些错误总的来说分为两种最常见。
1. Request Timed Out
"request time out"这提示除了在《PING(一)》提到的对方可能装有防火墙或已关机以外,还有就是本机的IP不正确和网关设置错误。
①、IP不正确:
IP不正确主要是IP地址设置错误或IP地址冲突,这可以利用 ipconfig /all这命令来检查。在 Windows 2000 下IP冲突的情况很少发生,因为系统会自动检测在网络中是否有相同的IP地址并提醒你是否设置正确。在NT中不但会出现"request 时间 out"这提示而且会出现"Hardware error"这提示信息比较特殊不要给它的提示所迷惑。
②、网关设置错误:这个错误可能会在第四个步骤出现。网关设置错误主要是网关地址设置不正确或网关没有帮你转发数据,还有就是可能远程网关失效。这里主要是在你Ping外部网络地址时出错。错误表现为无法Ping外部主机返回信息"Request time out"。
2. Destination Host Unreachable
当你在开始PING网络 计算机 时如果网络设备出错它返回信息会提示"destination host unreachable"。如果 局域网 中使用DHCP分配IP时,而碰巧DHCP失效,这时使用 PING命令就会产生此错误。因为在DHCP失效时 客户机 无法分配到IP系统只有自设IP,它往往会设为不同子网的IP。所以会出现"Destination Host Unreachable"。另外 子网掩码 设置错误也会出现这错误。
还有一个比较特殊就是 路由 返回错误信息,它一般都会在"Destination Host Unreachable"前加上IP地址说明哪个 路由 不能到达目标主机。这说明你的机器与外部网络连接没有问题,但与某台主机连接存在问题。
Linux&Unix
如右图是 linux 的ping指令
与Windows的比较
描述:ping 程序使用 ICMP 协议的强制回显请求 数据报 以使主机或网关发送一份ICMP的回显应答。回显请求数据报("pings")含有一个IP及ICMP的报头,后跟一个``时间值关键字''然后是一段任意长度的填充 字节 用于把保持分组长度为16的整数倍。
Linux的ping语法和Windows的差不多
但是Linux的Ping数据包是64bytes的 而Windows的是32byte Windows下默认发送四次数据包,完了之后自己结束,Linux下的ping程序默认不停发送数据包,直到你手动停止。(停止指令是 ctrl +c)
返回数据格式不同
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
-c 计数 在发送(和接收)了正好数量为count的回显应答分组后停止操作。在发送了 count个分组后没有收到任何分组的特别情况是发送导致了终止(选程主机或网关不可达)。
-d 在所用的套接字上使用 SO_DEBUG 选项。
-f 以高速方式来作ping。以分组返回的速度来输出其它分组或每秒输出百次。当收到每个回显应答并打印一个退格符时,对每个回显请求都打印一个句点``.''。这可以快速显示出丢弃了多少个分组,只有超级用户可以用 这个选项。这(操作)对网络要求非常苛刻,应该慎重使用。
-i wait 在发送每个分组时等待wait个秒数。缺省值为每个分组等待一秒。此选项 与-f选项不能同时使用。
-l preload 如果指定preload,那么ping程序在开始正常运行模式前尽可能快地发送分组。同样只有超级用户可以用这个选项。
-n 只以数字形式输出信息。这样就不尝试去查找主机名了。
-p pattern 可以指定最多16个填充 字节 用于保持分组长度为16的整数倍。在网络上诊断与数据相关问题时此选项很有用。例如``-pff''将使发出的分组都用全 1填充数据区。
-q 静态输出。在程序启动和结束时只显示摘要行。
-R 记录 路由 。在回显请求分组中包含记录路由选项并在相应的分组返回时显示路由 缓冲区 。注意IP首部的容量只能存放9条这样的路由。很多主机忽略或禁用此选项。
-t 存活数值:设置存活数值TTL的大小。
-w time out 指定等待每个响应的最长时间(单位是毫秒)。这个选项仅和-c选项一起才能起作用。它使ping命令以最长的超时时间去等待应答(发送最后一个信息包后)。
测试网络
Linux 的不是 ipconfig /all而是ifconfig
怎样使用Ping这命令来测试网络连通呢?
连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。
首先人们讲一下使用Ping命令的步骤。
使用Ping检查连通性有六个步骤:
1. 使用ifconfig观察本地网络设置是否正确;
2. Ping127.0.0.1,127.0.0.1回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好;
3. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;
4. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非 局域网 中这一步骤可以忽略)
5.Ping本地DNS地址,这样做是为了检查DNS是否能够将IP地址解析。
6.Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。
反馈信息
Request time d out
a.对方已关机:比如在上图中主机A中PING 192.168.0.7,或者主机B关机了,在主机A中PING 192.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通这台机器了。
Destination 宿主 Unreachable
对方与自己不在同一 网段 内,而自己又未设置默认的 路由 ,或者网络上根本没有这个地址,比如上例中A机中不设定默认的路由,运行Ping 192.168.1.4就会出现“Destination host Unreachable”。
网线出了故障
这里要说明一下“destination host unreachable”和“ time out”的区别,如果所经过的 路由器 的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“ time out”,如果路由表中连到达目标的 路由 都没有,那就会出现“destination host unreachable”。
Bad IP address
这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。
Source quench received
这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
Unknown host ——不知名主机
这种出错信息的意思是,该远程主机的名字不能被 域名 服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
No answer ——无响应
这种故障说明本地系统有一条通向中心主机的 路由 ,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的 路由器 没有工作;通信线路有故障;中心主机存在路由选择问题。
Ping 127.0.0.1: 127.0.0.1是本地循环地址
如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。
no rout to host: 网卡 工作不正常
transmit failed,error code: 10043网卡驱动不正常
unknown host name: DNS配置不正确
相关命令
CMD命令
1. gpedit. 地中海航运公司 组策略
2. sndrec32------- 录音机
3. Nslookup-------IP地址侦测器
4. explorer-------打开 File Explorer
5. logoff---------注销命令
6. tsshutdn-------60秒倒计时关机命令
7. lusrmgr.msc----本机用户和组
8. services.msc---本地服务设置
9. oobe/msoobe /a----检查XP是否激活
10. notepad--------打开记事本
11. clean mgr-------磁盘清理
12. net start 信使号 开始信使服务
13. compmgmt.msc--- 计算机 管理
14. net stop messenger----- 停止信使服务
15. conf-----------启动netmeeting
16. dvd play --DVD播放器
17. charmap--------启动 字符 映射 表
18. diskmgmt.msc--- 磁盘 管理实用程序
19. calc-----------启动 计算器
20. dfrg.msc-------磁盘碎片整理程序
21. chkdsk.exe----- chkdsk 磁盘检查
22. devmgmt.msc---设备管理器
23. regsvr32 /u *.dll----停止dll文件运行
24. drwtsn32------ 系统医生
25. rononce -p ----15秒关机
26. dxdiag---------检查DirectX信息
27. regedit------- 注册表 编辑器
28. Msconfig.exe---系统配置实用程序
29. rsop. 地中海航运公司 -组策略结果集
30. mem.exe--------显示 内存 使用情况
31. regedit.exe---- 注册表
32. winchat--------XP自带 局域网 聊天
33. progman--------程序管理器
34. win msd------ ---系统信息
35. perfmon.msc---- 计算机 性能监测程序
36. sfc /scannow-----扫描错误并复原
37. taskmgr-----任务管理器(2000/xp/2003
38. winver---------检查Windows版本
39. wmimgmt.msc----打开windows管理体系结构(WMI)
40. wupdmgr--------windows更新程序
41. wscript--------windows脚本 宿主 设置
42. write---------- 写字板
43. wiaacmgr------- 扫描仪 和 照相机 向导
44.. Msconfig.exe---系统配置实用程序
45. mplayer 2-------简易widnows media player (媒体播放机)
46. mspaint--------画图板
47. mstsc----------远程桌面连接
48. magnify--------放大镜实用程序
49. mmc------------打开控制台
50. mobsync--------同步命令
51. dcomcnfg-------打开系统组件服务
52. ddeshare-------打开DDE共享设置
53. nslookup-------网络管理的工具向导
54. ntbackup-------系统备份和还原
55. narrator-------屏幕“讲述人”
57. ntmsoprq.msc---移动存储管理员操作请求
58. netstat -an----(TC)命令检查接口
59. sync app------ --创建一个公文包
60. sysedit--------系统配置编辑器
61. sig verif-------文件签名验证程序
62. shrpubw--------创建共享文件夹
63. sec pol. msc-----本地安全策略
64. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
65. services.msc---本地服务设置
66. Sndvol32-------音量控制程序
67. sfc.exe--------系统文件检查器
68. tourstart------xp简介(安装完成后出现的 漫游 xp程序)
69. eventvwr-------事件查看器
70. eudcedit------- 造字 程序
71. packager-------对象包装程序
72. regedit.exe---- 注册表
73. regsvr32 /u zipfldr.dll------取消ZIP支持
74. cmd.exe-------- 运行指令 命令提示符
75. chkdsk.exe----- chkdsk 磁盘 检查
76. certmgr. msc---- 证书管理实用程序
77. cliconfg-------SQL SERVER 客户端网络实用程序
78. Clipbrd--------剪贴板查看器
79. ciadv.msc------ 索引 服务程序
80. osk------------打开屏幕键盘
81. odb cad32-------ODBC数据源管理器
82. iexpress------- 木马 捆绑工具,系统自带
83. fsmgmt. 地中海航运公司 共享文件夹管理器
84. utilman--------辅助工具管理器
UNIX命令
用途
发送一个回送信号请求给网络主机。
语法
ping [ -d] [ -D ] [ -n ] [ -q ] [ -r] [ -v] [ \ -R ] [ -a addr_family ] [ -c 计数 ] [ -w time out ] [ -f | -i \ Wait ] [ -l Preload ] [ -p Pattern ] [ -s PacketSize ] [ -S hostname/IP addr ] \ [ -L ] [ - I a.b.c.d. ] [ -o 接口 ] [ -T ttl ] Host [ PacketSize ] \ [ Count ]
描述
/usr/sbin/ping 命令发送一个因特网控制报文协议(ICMP) ECHO_REQUEST 去从主机或网关那里获得 ICMP ECHO_RESPONSE 信号。ping 命令用于:
* 确定网络和各外部主机的状态。
* 跟踪和隔离硬件和软件问题。
* 测试、评估和管理网络。
如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 time val 结构,以及来填写这个信息包的足够的 字节 。缺省情况是连续发送回送信号请求直到接收到中断信号( Ctrl +C)。
ping 命令每秒发送一个数据包并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。
缺省情况下,ping 命令将连续发送回送信号请求到显示器直到接收到中断信号( ctrl +C). 中断键可以使用 stty 命令来更改。
由于连续回送信号请求会对系统造成一定的负载,重复的请求信号应当主要用作问题隔离。
标志
-c Count 指定要被发送(或接收)的回送信号请求的数目,由 Count 变量指出。
-w time out 这个选项仅和 -c 选项一起才能起作用。它使 ping 命令以最长的超时时间去等待应答(发送最后一个信息包后)。
-d 开始套接字级别的调试。
-D 这个选项引起 ICMP ECHO_REPLY 信息包向标准输出的十六进制转储。
-f 指定 flood-ping 选项。-f 标志“倾倒”或输出信息包,在它们回来时或每秒 100 次,选择较快一个。每一次发送 ECHO_REQUEST,都打印一个句号,而每接收到一个 ECHO_REPLY 信号,就打印一个退格。这就提供了一种对多少信息包被丢弃的信息的快速显示。仅仅 root 用户可以使用这个选项。
注:这在网络 上将 非常困难,必须小心使用。Flood ping 命令仅仅 root 用户可以使用。-f 标志与 -i Wait 标志不兼容。
-I a.b.c.d 指定被 a.b.c.d 标明的接口将被用于向外的 IPv4 多点广播。-I 标志是大写的 i。
-o 接口 指出 interface 将被用于向外的 IPv6 多点广播。接口以“en0”,“tr0”等的形式指定。
-i Wait 在每个信息包发送之间等待被 Wait 变量指定的时间(秒数)。缺省值是在每个信息包发送之间等待 1 秒。这个选项与 -f 标志不兼容。
-L 对多点广播 ping 命令禁用本地回送。
-l Preload 在进入正常行为模式(每秒 1 个)前尽快发送 Preload 变量指定数量的信息包。-l 标志是小写的 L。
-n 指定仅输出数字。不企图去查寻主机地址的符号名。
-p Pattern 指定用多达 16 个“填充” 字节 去填充你发送的信息包。这有利于诊断网络上依赖数据的问题。例如,-p ff 全部用 1 填充信息包。
-q 指定静默输出。除了在启动和结束时显示总结行外什么也不显示。
-r 忽略 路由 表直接送到连接的网络上的主机上。如果 主机 不在一个直接连接的网络上,ping 命令将产生一个错误消息。这个选项可以被用来通过一个不再有 路由 经过的接口去 ping 一个本地主机。
-R 指定记录路由选项。-R 标志包括 ECHO_REQUEST 信息包中的 RECORD_ROUTE 选项,并且显示返回信息包上的路由缓冲。
注:IP 头仅仅大到适合 9 个这样的路由。而且,许多主机和网关忽略这个选项。
-a addr_family 映射 ICMP 信息包的目的地址到 IPv6 格式,如果 addr_family 等于“inet6”的话。
-s PacketSize 指定要发送数据的字节数。缺省值是 56,当和 8 字节 的 ICMP 头数据合并时被转换成 64 字节的 ICMP 数据。
-S hostname/IP addr 将 IP 地址用作发出的 ping 信息包中的源地址。在具有不止一个 IP 地址的主机上,可以使用 -S 标志来强制源地址为除了软件包在其上发送的接口的 IP 地址外的任何地址。如果 IP 地址不是以下机器接口地址之一,则返回错误并且不进行任何发送。
-T ttl 指定多点广播信息包的生存时间为 ttl 秒。
-v 请求详细输出,其中列出了除回送信号响应外接收到的 ICMP 信息。
参数
PacketSize 指定了要发送数据的字节数。缺省值是 56,当和 8 字节 的 ICMP 头数据合并时被转换成 64 字节的 ICMP 数据。包含这个参数是为了和以前的 ping 命令版本相兼容。
Count 指定了要发送(接收)的回送信号请求的数目。包含这个参数是为了和以前的 ping 命令版本相兼容。
示例
1. 要检查网络和主机 canopus 的连接性,并且指定要发送的回送信号请求的数目,请输入:
ping -c 5 canopus
或者
ping can opus 56 5
类似下列的信息将被显示:
PING can opus. austin.century com: (128.116.1.5): 56 数据 bytes
64.bytes from 128.116.1.5: icmp_seq=0 ttl=255 时间 =2 ms
64.bytes from 128.116.1.5: icmp_seq=1 ttl=255 time=2 ms
64.bytes from 128.116.1.5: icmp_seq=2 ttl=255 time=3 ms
64.bytes from 128.116.1.5: icmp_seq=3 ttl=255 time=2 ms
64.bytes from 128.116.1.5: icmp_seq=4 ttl=255 time =2 ms
----canopus.austin.century com PING Statistics----
5.packets transmitted,5 packets received,0% packet loss
round-trip min/avg/max = 2/2/3 ms
2. 要想获取有关主机 lear 的信息,并且启动套接字级别的调试,请输入:
ping -d lear
类似下列的信息将被显示:
PING lear.austin.century com: (128.114.4.18) 56 数据 bytes
64.bytes from 128. 114. 4.18: icmp_seq=0 ttl=255 时间 =6 ms
64.bytes from 128.114.4.18: icmp_seq=1 ttl=255 time=17 ms
64.bytes from 128.114.4.18: icmp_seq=2 ttl=255 time=6 ms
64.bytes from 128.114.4.18: icmp_seq=3 ttl=255 time=6 ms
64.bytes from 128.114.4.18: icmp_seq=4 ttl=255 time =6 ms
^C
----lear.austin.century com PING Statistics ----
round-trip min/avg/max = 6/8/17 ms
注:输出将一直重复直到接收到中断信号( ctrl +C)。
3. 要获取有关主机 opus 的信息,并且指定要发送的字节数,请输入:
ping -s 2000 opus
或者
ping opus 2000
类似下列的信息将被显示:
PING opus. austin.century com: (129.35.34.234): 2000 data bytes
2008 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time =20 ms
2008 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=19 ms
2008 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=20 ms
2008 bytes from 129.35.34.234: icmp_seq=3 ttl=255 时间 =20 ms
2008 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time =20 ms
2008 bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=19 ms
2008 bytes from 129.35.34.234: icmp_seq=6 ttl=255 time =19 ms
^C
---- opus. austin.century com PING Statistics----
7.packets transmitted,7 packets received,0% packet loss
round-trip min/avg/max = 19/19/20 ms
注:输出将一直重复直到接收到中断信号( Ctrl +C)。
4. 要调用 flood-ping 选项给主机 stlopnor,请输入:
ping -f stlopnor
类似下列的信息将被显示:
Ping stlopnor.austin.century com: (129.35.34.234): 56 数据 bytes
.^C
----stlop nor. austin.century com PING Statistics ----
1098 packets transmitted,1097 packets received,0% packet loss
round-trip min/avg/max = 4/4/11
注:flood-ping 命令的输出将一直重复,直到接收到中断信号( Ctrl +C)。
5. 要指定发送到主机 opus 信息包的发送时间间隔为 5 秒,请输入:
ping -i5 opus
类似下列的信息将被显示:
PING opus. austin.century com: (129.35.34.234): 56 数据 bytes
64.bytes from 129.35.34.234: icmp_seq=0 ttl=255 时间 =5 ms
64.bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=6 ms
^C
---- opus. austin.century com PING Statistics----
3.packets transmitted,3 packets received,0% packet loss
round-trip min/avg/max = 5/5/6 ms
注:输出将一直重复,直到接收到中断信号( Ctrl +C)。
6. 在进入正常行为模式前尽快发送 Preload 变量指定的数量的信息包到主机 opus ,请输入:
ping -l 10 opus
类似下列的信息将被显示:
64.bytes from 129.35.34.234: icmp_seq=0 ttl=255 time =9 ms
64.bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=11 ms
64.bytes from 129.35.34.234: icmp_seq=2 ttl=255 时间 =16 ms
64.bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=22 ms
64.bytes from 129.35.34.234: icmp_seq=4 ttl=255 time =26 ms
64.bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=27 ms
64.bytes from 129.35.34.234: icmp_seq=6 ttl=255 时间 =30 ms
64.bytes from 129.35.34.234: icmp_seq=7 ttl=255 time=31 ms
64.bytes from 129.35.34.234: icmp_seq=8 ttl=255 time =33 ms
64.bytes from 129.35.34.234: icmp_seq=9 ttl=255 time=35 ms
64.bytes from 129.35.34.234: icmp_seq=10 ttl=255 time=36 ms
64.bytes from 129.35.34.234: icmp_seq=11 ttl=255 time=6 ms
64.bytes from 129.35.34.234: icmp_seq=12 ttl=255 time =6 ms
64.bytes from 129.35.34.234: icmp_seq=13 ttl=255 time=6 ms
64.bytes from 129.35.34.234: icmp_seq=14 ttl=255 time=7 ms
64.bytes from 129.35.34.234: icmp_seq=15 ttl=255 time=6 ms
^C
---- opus .austin.century com PING Statistics----
16.packets transmitted,16 packets received,0% packet loss
round-trip min/avg/max = 6/19/36 ms
注:输出将一直重复,直到接收到中断信号( Ctrl +C)。
7. 要诊断网络上依赖数据的问题,请输入:
ping -p ff opus
这个命令用全为 1 的填充模式发送信息包给主机 opus。类似下列的信息将被显示:
PATTERN: 0xff
64.bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=5 ms
64.bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=5 ms
64.bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=6 ms
64.bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=5 ms
^C
---- opus. austin.century com PING Statistics----
round-trip min/avg/max = 5/5/6 ms
注:输出将一直重复,直到接收到中断信号( Ctrl +C)。
8. 要指定静默输出,请输入:
ping -q bach
仅仅类似下列的总结信息将被显示:
PING bach.austin.century com: (129.35.34.234): 56 数据 bytes
^C
----bach.austin.century com PING Statistics----
round-trip min/avg/max = 5/5/8 ms
注:虽然没有显示,信息包的输出将一直继续,直到接收到中断信号( ctrl +C)。
故障检查
事实上,无论是什么类型的故障诊断工具,在一些特殊网络故障面前都会显得无能为力;此时,人们所能做的就是依靠自己,从使用 Ping命令 开始,手工逐步排查故障原因。
首先对本地 工作站 的循环地址127.0.0.1进行ping测试。当遇到一些无法直接找到故障原因的特殊网络故障时,人们首先需要使用Ping命令测试一下本地工作站的循环地址127.0.0.1能否被正常Ping通,倘若该地址无法被正常Ping通的话,那么说明本地工作站的 TCP/IP协议 程序受到了破坏,或者 网卡 设备发生了损坏。
此时,人们不妨打开本地 工作站 系统的设备管理器窗口,从中找到 网卡 设备选项,并用鼠标右键单击该选项,从弹出的快捷菜单中执行“属性”命令,打开网卡设备的属性设置窗口,在该窗口的“常规”标签页面中人们就能看到当前的网卡工作状态是否正常了。
当发现网卡工作状态正常的话,那很有可能是本地 工作站 的 TCP/IP协议 程序受到了破坏,此时人们不妨打开本地连接属性设置窗口,选中并删除该设置窗口中的TCP/IP协议选项,之后再重新安装一下TCP/IP协议程序,相信这么一来本地工作站的循环地址127.0.0.1就能被正常Ping通了。
其次对本地 工作站 的IP地址进行ping测试。在确认127.0.0.1地址能够被Ping通的情况下,人们继续使用Ping命令测试一下本地工作站的静态IP地址是否能被正常Ping通,倘若该地址不能被正常Ping通的话,那么说明本地工作站的 网卡 参数 没有设置正确,或者 网卡 驱动 程序不正确,也有可能是本地的 路由表 受到了破坏。
此时人们可以重新检查一下本地 工作站 的网络参数是否设置正确,如果在网络参数设置正确的情况下仍然无法Ping通本地IP地址的话,人们最好重新安装一下 网卡 设备的原装驱动程序,相信这么一来人们就能正确Ping通本地工作站的静态IP地址了。一旦本地工作站的静态IP地址被顺利Ping通的话,那就表明本地工作站已经能够加入到 局域网 网络中了。
接着对本地局域网的默认网关地址进行ping测试。由于本地 工作站 是通过网关与局域网中的其他工作站进行相互通信的,只有本地工作站与默认网关之间连接正常,才能确保本地工作站与其他工作站通信正常。倘若网关地址能被正常Ping通的话,那就表明本地 工作站 可以与局域网中的其他工作站进行正常通信。
要是Ping命令操作不成功的话,那很有可能是 网关设备 自身存在问题,或者是本地 工作站 与网关之间的线路连接不正常,也有可能是本地工作站与网关没有设置成同一个子网中。此时,人们可以先用专业的线缆测试工具测试一下 网络线缆 的连通性,在线缆连通性正常的情况下,再检查本地工作站的网络参数是否与网关的参数设置成同一个子网中。
倘若网络参数设置正确的话,人们再从其他 工作站 Ping一下网关地址,以便确认网关自身是否存在原因,如果 局域网 中的其他工作站也无法Ping通网关的话,那多半是 路由器 自身存在问题,这个时候人们只要将故障排查重点锁定在网关设备上就可以了。
下面对局域网中任意一台远程 工作站 的IP地址进行ping测试,以便检验本地工作站能否通过网关设备与局域网中的其他工作站进行通信。要是人们发现远程 工作站 的IP地址无法Ping通的话,那很有可能是远程工作站自身无法响应,或者是远程工作站与网关设备之间的线路连接出现了问题,此时人们可以将网络故障的排查重点聚焦到远程工作站上或者是 局域网 的网络设备上。
最后对局域网的远程 工作站 主机名称进行ping测试。在确认能够Ping通远程 工作站 IP地址的情况下,仍然出现无法访问远程工作站内容的时候,人们就有必要进行这一项测试操作。如果该主机名称无法被Ping成功的话,那很有可能是DNS解析出现了问题,而不是网络连接发生了故障,此时人们不妨把故障检查重点锁定在DNS服务器上。
小提示:为了有效地找出网络故障原因,人们在使用Ping命令进行测试检查时,尽量确保 局域网 中只配置了一个网关且要ping的主机保持正常的使用状态,同时确保本地 工作站 没有启用IP安全设置策略,这样可以保证Ping命令能够获得正确的测试结果
命令技巧
".0"可以有条件省略
大家常用“ping 127.0.0.1”命令在本机上做回路测试,用来验证本机的TCP/IP协议簇是否被正确安装。但你发现了吗?使用“ping 127.1”这个命令也能得到同样的测试结果(如图),其实“ping 127.1”和“ping 127.0.0.1”这两条命令是一样的,都是在进行回路测试。为什么会这样呢?这就是Ping命令应用中IP地址的使用技巧。大家都知道,IP地址由32位 二进制 数字组成,为了方便大家记忆,将每8位二进制数字换算成 十进制 数字,因此就形成了容易记忆的由四部分十进制数字组成的IP地址(如127.0.0.1)。由于,Windows操作系统具有自动填充“.0”的功能,因此我就可将“127.0.0.1”变为“127.1”。但是,这个“.0”的省略是有条件限制的,并不能任意省略。在Ping命令的应用中,只能将在IP地址的最后一部分十进制数字前出现的一个或多个“.0”省略,如把“ping 127.0.0.1”命令改写成“ping 127.1”。如果这一个或多个“.0”没有紧挨着最后一部分的 十进制 数字,而是在其他位置,则这个“.0”不能省略,如“ping 202.0.96.1”就不能写成“ping 202.96.1”。这是因为“ping 202.96.1”返回的结果是“202.96.0.1”的应答信息,而不是“202.0.96.1”的应答信息。
数字串代替IP地址
在Ping命令中,还可以使用数字串代替IP地址,你相信吗?运行“ping 3658906394”命令,你会看到“218.22.123.26”这个IP地址的返回信息。为什么会这样呢?其实,“3658906394”就是IP地址“218.22.123.26”的另一种表示形式。当然,也可按同样的方法Ping其他的IP地址。字符串是如何转换而来的呢?其实并不复杂,以“218.22.123.26”这个IP地址为例,IP地址转换成数字串方法如下:先将“218.22.123.26”转换为十六进制“DA.16.7B.1A”,然后去掉 小数点 后,变为“DA167B1A”,最后将这个 十六进制数 转换为 十进制 “3658906394”,那么“218.22.123.26”就变为“3658906394”了。其他IP地址转换为数字串也是使用同样的方法。提示:在某些 局域网 环境中,使用“Ping+数字串”命令可能会失败,出现提示信息“Unknown host数字串”,这是因为该数字串被解析成主机名了,而不是IP地址。因此,掌握了上述技巧后,网管在进行网络测试或维护时,可以熟练运用“省略”方式,减轻Ping命令的 字符 输入量,提高工作效率。同时,使用数字串代替IP地址也可迷惑好奇心强的普通用户,以免他们胡乱设置。