bash - 如何操作从 Bash 脚本中的路由表中获取的特定 IP 地址
问题描述
我正在尝试用 Bash Script 编写网络扫描仪。我从路由表(我的路由器的 IP)中获取一个 IP,但现在我想删除该 IP 的最后一位并输入一个字母,以便我可以将该 IP 地址放入一个循环中以生成一个更连续的 IP 地址。
这是我正在谈论的代码:
first_ip=$(route -n | awk 'NR>2{print $2}' | head -1)
现在,如何删除该 IP 的最后一个字符?
解决方案
您可以使用以下方法删除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。 然后,您可以添加任何要添加的号码...
我希望这有帮助!
推荐阅读
- javascript - Bootstrap 4 仪表板示例响应式
- azure - 有状态的 Service Fabric 应用程序无法在 Azure 免费试用帐户中运行
- junit5 - 为什么在 JUnit 5 中不再弃用 assertEquals(double,double)?
- redirect - 如何设置阻止恶意网站转发到我的网站(我的网站建立在 gatsby 上并托管在 netlify 上)
- json - 访问字典 ansible 上的嵌套项
- scala - 为什么我无法从地图实例中正确获取累加器?
- html - html正文溢出的未知原因
- apache-kafka - Kafka-topics --list 使用 ssl
- mysql - 使用 1 个查询获取 2 个查询的结果
- regex - 用于删除括号之间的字符的正则表达式