Shell脚本快速查看网段内ip占用情况和可用ip

您所在的位置:网站首页 怎样查看ip地址是否被占用 Shell脚本快速查看网段内ip占用情况和可用ip

Shell脚本快速查看网段内ip占用情况和可用ip

2024-07-11 19:50| 来源: 网络整理| 查看: 265

1.发现问题

今天在学习的时候突然有一个想法,想要看一下自己教室网段内的ip占用情况,如果一个一个的IP去ping的话会花费大量时间于是自己尝试用shell脚本来解决这个问题.

需求:

我的ip是192.168.22.122,我想要查看22网段下所有的ip使用情况、是否有人在使用某些ip、是否可以ping通该网段的所有ip.

2.编程思想 1.基于:ping 192.168.22.xxx 来获取相应的返回情况。 我使用的是centos7的虚拟机桥接模式. 成功返回: 64 bytes from 192.168.22.121: icmp_seq=1 ttl=128 time=1.50 ms 失败返回: From 192.168.22.80 icmp_seq=1 Destination Host Unreachable 如果成功的话,返回的字符串中会带有"ttl"字符串,所以可以依据这个来作为是否ping通的判断条件。 2. shell的循环 用For循环和while do 循环都可以,需要让变量$i 从0-255即可 3. shell的多线程 再结合了上面两个方法以后,发现255个ip一个一个ping还是很慢,所以就想到了多线程的方法,把1次运行ping和判断调用1个线程,一共使用255个线程,速度是真滴快. 3.代码 #!/bin/bash star=`date +%s` echo "*********Running...**********" for ((i = 0; i > ipyes.txt || echo "192.168.22.$i no" >> ipno.txt }& done wait end=`date +%s` echo $end echo "*************Spent Time:`expr $end - $star `**************" 结果 我将结果重定向到了两个文件ipyes 和 ipno 中,yes为正在占用的ip,no未未在使用的ip.使用方法 vim 一个shell脚本,粘贴代码,然后将ip改成自己的网段就行,sh 运行脚本. 4.运行截图

shell脚本 脚本 在这里插入图片描述 运行情况 在这里插入图片描述 运行结果 十几秒秒就可以ping完网段下所有ip,并把结果写在文档里,够快吧,嘿嘿



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3