一、ping命令基础介绍
在网络中ping是一个十分强大的TCP/IP工具,它的作用主要为:
1、用来检测网络的连通情况和分析网络速度;
2、根据域名得到服务器IP;
3、根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。我们通常会用它来直接ping ip地址,来测试网络的连通情况。
直接ping ip地址或网关,ping通会显示出以上数据,那么,bytes=32;time<1ms;TTL=128 这些是什么意思呢?bytes值:数据包大小,也就是字节。time值:响应时间,这个时间越小,说明连接这个地址速度越快。TTL值:Time To Live,表示DNS记录在DNS服务器上存在的时间,它是IP协议包的一个值,告诉路由器该数据包何时需要被丢弃。可以通过Ping返回的TTL值大小,粗略地判断目标系统类型是Windows系列还是UNIX/Linux系列。一般TTL值:100~130ms之间,Windows系统 ;240~255ms之间,UNIX/Linux系统。
二、ping -t的使用
不间断地Ping指定计算机,直到管理员中断。
三、ping -a的使用
ping-a解析计算机名与NETBIOS名。就是可以通过ping目标的ip地址,解析出主机名。当遇到一个ip,却不知道他是那个设备时,这时可以通过ping -a知道它的主机名。
四、ping -n的使用
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送10个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少,就可以通过此命令获知:
由上图可知在给47.93.187.142发送10个数据包的过程当中,返回了10个,没有丢失,这10个数据包当中返回速度最快为32ms,最慢为55ms,平均速度为37ms,说明网络良好。如果对于一些不好的网络,比如监控系统中非常卡顿,这样测试,返回的结果可能会显示出丢失出一部分,如果丢失的比较多的话,那么就说明网络不好,可以很直观的判断出网络的情况。
五、ping -l size的使用
-l size:发送size指定大小的数据包到目标主机。在默认的情况下Windows的ping发送的数据包大小为32byt,最大能发送65500byt。例如:ping -l 65500 -t 211.84.7.46,会连续对IP地址执行ping命令,直到被用户以Ctrl+C中断。
六、ping -r count的使用
在“记录路由”字段中记录传出和返回数据包的路由,探测经过的路由个数,但最多只能跟踪到9个路由。ping -n 1 -r 9 202.102.224.25 (发送一个数据包,最多记录9个路由)。
七、批量Ping网段
1、ping一个网段
对于一个网段ip地址众多,如果单个检测实在麻烦,那么我们可以直接批量ping网段检测,那个ip地址出了问题,一目了然。
先看代码,直接在命令行窗口输入:for /L %D in (1,1,255) do ping 10.168.1.%D,IP地址段修改成你要检查的IP地址段。
当输入批量命令后,那么它就自动把网段内所有的ip地址都ping完为止。那么这段“for /L %D in(1,1,255) do ping 10.168.1.%D” 代码是什么意思呢?代码中的这个(1,1,255)就是网段起与始,就是检测网段192.168.1.1到192.168.1.255之间的所有的ip地址,每次逐增1,直接到1到255这255个ip检测完为止。2、ping网段升级上面的命令虽然能批量ping 地址,但是上面代码在命令行窗口显示数量多的时候看起来也很麻烦,那么升级一下,用下面的代码。for /L %D in (1,1,255) do ping -n 10.168.1.%D >>a.txt 说明,ip地址是变的,你填你需要测的ip网段就行,a.txt也是变的,可以自已设置名称。这样就会把结果导入的a.txt文件中,全部IP检查完成后打开a.txt搜索“TTL=”包含它的就是通的地址,没有包含“TTL=”的地址就是不通的。
3、ping网段命令再升级
第2种方法需要搜索查找结果,那么我们再看下,是否有更简便的方法呢?代码如下:
for /l %D in (1,1,255) do (ping 192.168.1.%D -n 1 && echo 192.168.1.%D>>ok.txt || echo 192.168.1.%D >>no.txt)
4、ping网段命令终极方法
上面提到的三种代码提到的都是针对同一个网段内ip地址批量检测,那么肯定在实际项目中,也可能存不同网段的ip地址需要同时检测,那么怎么办呢?我们来看下代码:for /f %D in (ip.txt) do (ping %D -n 1 && echo %i>>ok.txt || echo %D >>no.txt)多了一个ip.txt文件,这个文件是要你自己准备的,把你ping的地址写到这个文件里面,代码会自己读取这个文件里面的ip地址,并且把结果放到两个文件里面去。这里面补充下:上面代码生成的文件在你命令行默认目录下。也就是说如果你的命令行状态是:"c:windowssystem32>"那么生成的文件就在系统的system32目录下面。