给定一ip,子网掩码,将它们转换成2进制,再进行逻辑与运算,得出网络号。

比如:
ip:192.168.1.1
子网掩码:255.255.255.0
先将ip,跟子网掩码转换成2进制,再进行逻辑与运算,得出一个值,用shell语法怎么写?

阅读 3.9k
1 个回答

我尝试写了一下,你看一下对不对

ip=$1
mask=$2
out=''
for index in {1..4}; do
    si=$(echo $ip | cut -d "." -f $index)
    sm=$(echo $mask | cut -d "." -f $index)
    if [ $index -ne 1 ]
    then
        out="$out."
    fi
    out="$out$[$si&$sm]"
done
echo $out
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进