【linux命令】[原创]测试一个局域网(公司内网)IP段的IP通或者不通shell脚本
内容摘要
这个是之前学习shell的时候自己写的,后边也有朋友学shell问过我个人当时的思路,简单就将自己的思路给他说了下,实际不仅仅是这一个方式,还有其他方式实现。这里仅记录当时自己学
文章正文
这个是之前学习shell的时候自己写的,后边也有朋友学shell问过我个人当时的思路,简单就将自己的思路给他说了下,实际不仅仅是这一个方式,还有其他方式实现。这里仅记录当时自己学shell时的思路:
思路如下:
1,确定一个变量,定下是哪个c段,这里以一个c段的IP为例,当然也可以测试多个ip段。比如192.168.1
2,确定一个变量存放ip段后边的主机地址,指定1–254
3,由步骤1、2确定一个完整的IP地址段,进行一个循环ping。ping只获取两个数据包。将ping通的地址输入到一个文件,不通的输出到一个文件。
简单代码如下:
#!/bin/bash #test ip 192.168.1.x #author:21yunwei seq 1 254 >ip.txt ip_c="192.168.1" cat ip.txt | while read n do ping ${ip_c}.$n -c 2 >/dev/null [ $? -eq 0 ] && echo "${ip_c}.$n is ok">>yes.txt || echo "${ip_c}.$n is error" >> no.txt done
执行完结果如下:
[[email protected]]# tail -5 yes.txt 192.168.1.247 is ok 192.168.1.248 is ok 192.168.1.249 is ok 192.168.1.252 is ok 192.168.1.253 is ok [[email protected]]# tail -5 no.txt 192.168.1.224 is error 192.168.1.225 is error 192.168.1.250 is error 192.168.1.251 is error 192.168.1.254 is error
这里仅做抛砖引玉,更好的实现方式可以自己想下。
代码注释
[!--zhushi--]