IP/掩码地址转换

4 篇文章 0 订阅

IP/掩码格式转换的方案

子网掩码位数转换为点分表示


#!/bin/ash

prefix_to_mask() {
    num=$((4294967296 - 2 ** (32 - $1)))
    for i in $(seq 3 -1 0); do
        echo -n $((num / 256 ** i))
        num=$((num % 256 ** i))
        if [ "$i" -eq "0" ]; then
            echo
        else
            echo -n .
        fi
    done
}


# example

mask=$(prefix_to_mask 24)

点分表示的IP地址转换为整数表示

aton() {
    ip=$1
    a= $(echo $ip | awk -F'.' '{print $4}')
    b= $(echo $ip | awk -F'.' '{print $3}')
    c= $(echo $ip | awk -F'.' '{print $2}')
    d= $(echo $ip | awk -F'.' '{print $1}')
    echo "$(((d << 24) + (c << 16) + (b << 8) + a))"

}


# example

ipn=$(aton "192.168.12.1")

判断子网是否相同


#!/bin/ash

# ipna ipnb maskna masknb分别为IP/MASK的整数表示

if [ $(($ipna & $maskna)) -eq $(($ipnb & $masknb))]; then
    echo "same network"
else
    echo "different network"
fi


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值