如何在 Bash 脚本中操作从路由 table 获取的特定 IP 地址

How to manipulate a particular IP address that is taken from route table in Bash Script

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

这是我正在谈论的代码:

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

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

您可以使用 grep:

删除 IP 地址 的最后一部分

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

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

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

所以如果你有 IP 地址 192.155.177.123 你会得到 192.155.177. 然后你可以添加任何你想添加的号码...

希望对您有所帮助!