首页 > 解决方案 > 如何操作从 Bash 脚本中的路由表中获取的特定 IP 地址

问题描述

我正在尝试用 Bash Script 编写网络扫描仪。我从路由表(我的路由器的 IP)中获取一个 IP,但现在我想删除该 IP 的最后一位并输入一个字母,以便我可以将该 IP 地址放入一个循环中以生成一个更连续的 IP 地址。

这是我正在谈论的代码:

first_ip=$(route -n | awk 'NR>2{print $2}' | head -1)

现在,如何删除该 IP 的最后一个字符?

标签: baship

解决方案


您可以使用以下方法删除IP 地址的最后一部分grep

first_ip=$(route -n | awk 'NR >2 { print $2 }' | head -1 | grep -oE "\b([0-9]{1,3}\.){3}")

这将为您提供由 列出的 IP 地址的前三个数字route-n。然后,您可以添加任何您希望的数字 XXX,如下所示:

first_ip=$(route -n | awk 'NR >2 { print $2 }' | head -1 | grep -oE "\b([0-9]{1,3}\.){3}")
first_ip = first_ip"XXX"

因此,如果您的 IP 地址为 192.155.177.123,您将获得192.155.177。 然后,您可以添加任何要添加的号码...

我希望这有帮助!


推荐阅读