使用 bash 在 Linux 中获取子网掩码

新手上路,请多包涵

我正在使用 bash 通过该脚本获取我的机器的 IP 地址:

 _MyGW="$( ip route get 8.8.8.8 | awk 'N=3 {print $N}' )"

现在我正在尝试获取这种类型的子网掩码:

 192.168.1.0/24

但我不知道我该怎么做。

原文由 ValeriRangelov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 808
2 个回答

有几种方法可以实现这一点:

首先:要以 255.255.255.0 格式打印掩码,您可以使用以下命令:

 /sbin/ifconfig wlan0 | awk '/Mask:/{ print $4;} '

第二:我们可以使用 ip 命令获取格式为 192.168.1.124 的掩码

ip -o -f inet addr show | awk '/scope global/ {print $4}'

原文由 vishal 发布,翻译遵循 CC BY-SA 3.0 许可协议

为我做这件事的一个简单方法是:

 IP=$(ifconfig eth0 | grep -w inet | cut -d" " -f10) # device IP, e.g. 11.1.1.43
IP_RANGE=$(echo $IP | cut -d"." -f1-3).0/24 # subnet 11.1.1.0/24

当然用 eth0 显示的正确界面替换 ifconfig

原文由 LoW 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题