ana*_*chy 7 networking linux lan arch-linux manjaro
我有一个我曾经在 ubuntu 中使用的脚本。它使用命令获取了我的 LAN IP 地址hostname -I。192.168.1.xxx我会得到像字符串一样的输出,我可以在其他地方使用它。
hostname -i然而,对于 Manjaro,当我尝试, (小写)时,该命令不存在,但我得到了127.0.1.1。我什至安装了 dnsutils。
有没有办法可以将我的 LAN 地址作为 Manjaro 中任何命令/工具的输出?
A.B*_*A.B 11
Linux iproute2工具自 2017 年以来一直支持 JSON 输出。然后可以使用jq实用程序(分布在大多数发行版中,包括Manjaro)轻松解析此输出以在脚本中使用。
您可以将其与询问内核如何选择到达某个众所周知的地址(例如:8.8.8.8)结合起来,并仅保留相关部分(以及其他信息,例如网关、接口名称等):所选的"prefsrc"使用jq过滤器的本地地址 ( ) 。不发出任何数据包,它只是要求内核解析路由并返回结果:
ip -json route get 8.8.8.8 | jq -r '.[].prefsrc'
Run Code Online (Sandbox Code Playgroud)
将给出的结果不会受到任何输出特性的影响,也不需要事先知道接口名称。这个结果是动态的。例如,如果随后对所有流量使用 VPN,则前一命令将返回新的隧道地址。
| 归档时间: |
|
| 查看次数: |
18821 次 |
| 最近记录: |