知行社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

知行社区 门户 技术 查看内容

判断IP是否在一个网络中

2018-1-5 15:32| 发布者: oppo| 查看: 19869| 评论: 1|原作者: 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"

鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

oppo 2017-10-20 11:53

查看全部评论(1)

相关分类

QQ|小黑屋|手机版|知行技术社区 ( 湘ICP备11020288号-1 )

GMT+8, 2022-8-27 22:46 , Processed in 0.060094 second(s), 13 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部