鍍金池/ 問答/Python  Linux/ 給定一ip,子網掩碼,將它們轉換成2進制,再進行邏輯與運算,得出網絡號。

給定一ip,子網掩碼,將它們轉換成2進制,再進行邏輯與運算,得出網絡號。

比如:
ip:192.168.1.1
子網掩碼:255.255.255.0
先將ip,跟子網掩碼轉換成2進制,再進行邏輯與運算,得出一個值,用shell語法怎么寫?

回答
編輯回答
扯機薄

我嘗試寫了一下,你看一下對不對

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
2017年2月10日 23:53