知行社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

知行社区 门户 科技频道 Linux资讯 查看内容

判断IP是否在一个网络中

2018-1-5 15:32| 发布者: oppo| 查看: 7351| 评论: 0|原作者: oppo

摘要: ip=$1 network=$2 net=`echo $network |cut -f1 -d'/'` mask=`echo $network |cut -f2 -d'/'` zero=$((32-mask)) M= for i in `seq 1 $mask`;do M=${M}1 done for k in `seq 1 $zero`;do M=${ ...
ip=$1
network=$2

net=`echo $network |cut -f1 -d'/'`
mask=`echo $network |cut -f2 -d'/'`
zero=$((32-mask))

M=""
for i in `seq 1 $mask`;do
        M="${M}1"
done
for k in `seq 1 $zero`;do
        M="${M}0"
done

M1=$((2#${M:0:8}))
M2=$((2#${M:8:8}))
M3=$((2#${M:16:8}))
M4=$((2#${M:24:8}))

ip1=`echo $ip |cut -f1 -d'.'`
ip2=`echo $ip |cut -f2 -d'.'`
ip3=`echo $ip |cut -f3 -d'.'`
ip4=`echo $ip |cut -f4 -d'.'`

n1=$((ip1&M1))
n2=$((ip2&M2))
n3=$((ip3&M3))
n4=$((ip4&M4))

n="$n1.$n2.$n3.$n4"

if [zxsq-anti-bbcode- "$n"x == "$net"x ];then
        echo "True: $ip in $network"
else
        echo "False: $ip not in $network"
fi

echo -e "\n====================="
echo "ip's NetWork: $n"

鲜花

握手

雷人

路过

鸡蛋

关于我们|小黑屋|手机版|Archiver|知行技术社区 ( 湘ICP备11020288号-1 )

GMT+8, 2018-12-11 07:59 , Processed in 0.009371 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部