shell多线程快速检测内网ip是否存活

post by rocdk890 / 2018-5-11 11:31 Friday linux技术
    之前写了一篇shell检测内网ip是否存活,对内网ip检测实在是太慢了,最近闲得蛋疼,决定用多进程来解决.
#!/bin/bash
# By rocdk890
# https://blog.slogra.com
#Check the network is online
cat /dev/null > ip_yes.txt
cat /dev/null > ip_no.txt
ip_num="192.168.1"
read -p "Enter your network segment(Default ip: 192.168.1):" ip_num
if [ "$ip_num" = "" ];then
	ip_num="192.168.1"
fi
echo "Please wait..."
for i in `seq 1 254`
do
{
ping -c2 -s1 $ip_num.$i >/dev/null
        if [ $? -eq 0 ];then
                echo -e $ip_num.$i is "\033[32;49;1mup\033[39;49;0m"
                echo -e "$ip_num.$i is up" >> ip_yes.txt
        else
                echo -e $ip_num.$i is "\033[40;31mdown\033[40;37m"
                echo -e "$ip_num.$i is down" >> ip_no.txt
        fi
} &
done
wait
sort -n -k 4 -t . ip_yes.txt -o ip_yes.txt
sort -n -k 4 -t . ip_no.txt -o ip_no.txt

ps:如果觉得屏幕输出结果有点乱的话,可以去看两个txt文件里的结果,我做了排序的.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-725.html

标签: shell ip 检测 内网 存活 扫描 多线程

评论: