700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Shell脚本案例:实现局域网扫描功能

Shell脚本案例:实现局域网扫描功能

时间:2022-10-17 11:02:47

相关推荐

Shell脚本案例:实现局域网扫描功能

需求分析:

得到局域网中正在使用的ip和未使用的ip

将使用的和未使用的ip地址保存到两个不同的文件

得到这些ip地址对应的mac地址

此处使用的校园网作案例

#!/bin/bash# 清空文件,不删除文件内容>used_ip.txt>unused_ip.txt# 此处使用的是校园网的WAN口ip# 使用for循环遍历整个局域网里的ipfor i in {1..254}do# 使用多个子进程执行ping命令,提升执行的效果(ping 10.122.199.$i -c 1 -w 1 &>/dev/nullif (( $? == 0 ))thenecho "10.122.199.$i is used"echo "10.122.199.$i" >>used_ip.txtelseecho "10.122.199.$i" >>unused_ip.txtecho "10.122.199.$i is unused"fi) &done# 让父进程等待子进程,所有的子进程执行完成了,再退出父进程wait# 父进程如果退出,会给所有子进程发送hup挂起信号,收到hup信号的进程会被内核kill掉,为了防止子进程还没执行完成就被kill掉,需要wait# 输出使用的ip地址和总数echo "##############used ip detail################"n=$(cat used_ip.txt|wc -l)echo "有${n}个ip地址在这个局域网里被使用,如下:"cat used_ip.txtecho "#################arp 缓存表###########################"# 得到arp缓存表里的有效的ip对应的mac地址arp -a|awk '{print $2,$4}'|grep -v "incomplete"|tr -d '()'

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。