前言
这段时间有新的需求,nginx里的白名单里有ip段,然而我的脚本识别不出来,上网查然后发现了很多关于判断是否在ip段内的网页,但是直接复制黏贴不能用,这里进行了一些代码的排错。
安装
apt-get install ipcalc
ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务
具体用法:https://blog.csdn.net/wj78080458/article/details/86839726
vim /home/lee/dcr/iprange.conf
58.24.64.0/18
58.24.0.0/18
58.24.128.0/18
58.24.192.0/18
58.25.128.0/18
58.25.192.0/18
64.254.111.0/24
#!/bin/bash
IP=$1
if [ -z $IP ]
then
echo -e "\e[31;42m sh ipcalc.sh IP \e[0m"
exit
fi
while read MASK
do
min=`/usr/bin/ipcalc $MASK|awk '/HostMin:/{print $2}'`
max=`/usr/bin/ipcalc $MASK|awk '/HostMax:/{print $2}'`
MIN=`echo $min|awk -F"." '{printf"%.0f\n",$1*256*256*256+$2*256*256+$3*256+$4}'`
MAX=`echo $max|awk -F"." '{printf"%.0f\n",$1*256*256*256+$2*256*256+$3*256+$4}'`
IPvalue=`echo $IP|awk -F"." '{printf"%.0f\n",$1*256*256*256+$2*256*256+$3*256+$4}'`
if [ "$IPvalue" -gt "$MIN" ] && [ "$IPvalue" -lt "$MAX" ]
then
echo "$IP"
exit # 这边一定要注意exit要缩进,否则脚本每次都会将下面的else跑完
else
echo "$IP"
fi
done</home/lee/dcr/iprange.conf