shell 脚本:已知ip地址,子网掩码,求子网地址
在某些情况下,需要求子网
#!/bin/bash
get_ipgate(){
#获取ip地址
ip=$(echo $1 | cut -d '/' -f1)
#获取子网掩码
mask=$(echo $1 | cut -d '/' -f2)
#ip地址转换整数
ipgate_int=$(echo $ip | awk -F'.' '{print $1*(256^3) + $2*(256^2) + $3*256 + $4}')
#主机位:32 - mask
#按位运算,右移,ip地址移除主机位,保留网络位
#按位运算,左移,ip地址以0补全主机位
((ipgate = ((ipgate_int >> ((32 - mask)))) << ((32 - mask))))
#获取子网:整数转换ip地址,整数右移取低8位
echo $((ipgate >> 24 & 0xFF)).$((ipgate >> 16 & 0xFF)).$((ipgate >> 8 & 0xFF)).$((ipgate & 0xFF))
}
get_ipgate 192.168.2.20/24
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步