设为首页
收藏本站
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
首页
BBS
搜索
搜索
热搜:
活动
交友
discuz
本版
帖子
京峰教育-Linux技术论坛
»
首页
›
默认篇
›
自动化运维
›
SHELL编程局域网IP探活脚本
返回列表
发新帖
查看:
817
|
回复:
1
SHELL编程局域网IP探活脚本
[复制链接]
admin
admin
当前离线
积分
164
22
主题
21
回帖
164
积分
管理员
积分
164
发消息
发表于 2024-8-21 17:00:26
|
显示全部楼层
|
阅读模式
SHELL脚本支持指定特定的网段;
对特定的网段进行探活
;
将存活的
IP地址写入存活的列表;
将不存活的
IP地址写入不存活的列表;
#!/bin/bash
#by author www.jfedu.net 2024
#######################
INPUT="0"
IP_LIST="$*"
RES_FILE1="/tmp/available.txt"
RES_FILE2="/tmp/unavailable.txt"
#Define check function 2022
check_lan(){
read -p "Please enter the LAN segment,example 192.168.1.0 (Netmask/24): " INPUT
if [ `echo $INPUT|sed 's/ /\n/g'|wc -l` -ne 0 ];then
for IP in $(seq 1 254)
do
IP_PREFIX=$(echo $INPUT|awk -F\. '{print $1"."$2"."$3"."}')
ping -c 2 -W1 ${IP_PREFIX}$IP >/dev/null 2>1
if [ $? -eq 0 ];then
echo "${IP_PREFIX}$IP is up."
echo "${IP_PREFIX}$IP" >> $RES_FILE1
else
echo "${IP_PREFIX}$IP is down."
echo "${IP_PREFIX}$IP" >> $RES_FILE2
fi
done
echo -e "\033[32m-------------------------\033[0m"
echo -e "\033[32mPlease check the following files:\033[0m"
echo "Available IP addresses: $RES_FILE1"
echo "Unavailable IP addresses: $RES_FILE2"
echo
fi
}
check_list()
{
read -p "Please enter the IP list to be checked,example list.txt: " INPUT
if [ ! -z $INPUT ];then
for IP in $(cat $INPUT)
do
ping -c 2 -W1 $IP >/dev/null 2>1
if [ $? -eq 0 ];then
echo "$IP is up."
echo $IP >> $RES_FILE1
else
echo "$IP is down."
echo $IP >> $RES_FILE2
fi
done
echo -e "\033[32m-------------------------\033[0m"
echo -e "\033[32mPlease check the following files:\033[0m"
echo "Available IP addresses: $RES_FILE1"
echo "Unavailable IP addresses: $RES_FILE2"
echo
fi
}
check_ip(){
read -p "Please enter the IP to be checked,example 1.1.1.1 | 1.1.1.2: " INPUT
for INPUT in `echo $INPUT`
do
while true
do
echo $INPUT|grep -E "\<([0-9]{1,3}\.){3}[0-9]{1,3}\>"
if [ $? -eq 0 ];then
IP=(`echo $INPUT|sed 's/\./ /g'`)
IP1=`echo ${IP[0]}`
IP2=`echo ${IP[1]}`
IP3=`echo ${IP[2]}`
IP4=`echo ${IP[3]}`
if [ $IP1 -gt 0 -a $IP1 -le 255 -a $IP2 -ge 0 -a $IP2 -le 255 -a $IP3 -ge 0 -a $IP3 -le 255 -a $IP4 -ge 0 -a $IP4 -lt 255 ];then
if [ `echo $INPUT|sed 's/ /\n/g'|wc -l` -ne 0 ];then
for IP in $(echo $INPUT)
do
ping -c 2 -W1 $IP >/dev/null 2>1
if [ $? -eq 0 ];then
echo "$IP is up."
echo $IP >> $RES_FILE1
else
echo "$IP is down."
echo $IP >> $RES_FILE2
fi
done
echo -e "\033[32m-------------------------\033[0m"
echo -e "\033[32mPlease check the following files:\033[0m"
echo "Available IP addresses: $RES_FILE1"
echo "Unavailable IP addresses: $RES_FILE2"
echo
fi
break;
else
read -p "Please Enter server IP address:" INPUT
fi
else
read -p "Please Enter server IP address:" INPUT
fi
done
done
}
case $1 in
1)
check_lan
;;
2)
check_ip
;;
3)
check_list
;;
*)
echo "---------------------------------------------"
echo -e "\033[34mWelcome to LAN live scripts:\033[0m"
echo -e "\033[32m1) check_lan\033[0m"
echo -e "\033[32m2) check_ip\033[0m"
echo -e "\033[32m3) check_list\033[0m"
echo -e "\033[32mUsage:{/bin/sh $0 1|2|3|4|5|help}\033[0m"
echo "---------------------------------------------"
esac
复制代码
回复
举报
admin
admin
当前离线
积分
164
22
主题
21
回帖
164
积分
管理员
积分
164
发消息
楼主
|
发表于 2024-8-29 16:00:39
|
显示全部楼层
既然你诚信诚意的推荐了,那我就勉为其难的看看吧!
京峰教育Linux论坛
不走平凡路。
回复
举报
返回列表
发新帖
懒得打字嘛,点击右侧快捷回复
选择快捷回复
楼主发贴辛苦了,谢谢楼主分享!
楼主太厉害了!楼主,I*老*虎*U!
这个帖子不回对不起自己!
这东西我收了!谢谢楼主!
我看不错噢 谢谢楼主!
既然你诚信诚意的推荐了,那我就勉为其难的看看吧!
其实我一直觉得楼主的品味不错!呵呵!
感谢楼主的无私分享!
楼主,大恩不言谢了!
楼主,我太崇拜你了!
社区不能没有像楼主这样的人才啊!
【右侧内容,后台自定义】
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表