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 statistics 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”等的信息,说明对方邮件服务器的主机未打开或网络未连通。这时即使将邮件发出去,对方也无法收到。
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 statistics 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”等的信息,说明对方邮件服务器的主机未打开或网络未连通。这时即使将邮件发出去,对方也无法收到。