使用 systemd-networkd 时如何检索 DHCP 信息?

使用 systemd-networkd 时如何检索 DHCP 信息?

netplan我们的 Ubuntu 22 机器使用和配置了网络systemd-networkd。网络管理器(以及nmcli& co.)是不是已安装。

bash脚本中,我希望提取 DHCP 服务器收到的各种参数,特别是主机名和 DNS 域名。使用nmcli我可以轻松转储 DHCP 信息;但是,我没有看到类似的可能性systemd-networkd

一个选项是解析 中的 DHCP 租约文件/run/systemd/netif/leases/。但是,该文件的开头是这样的:

# This is private data. Do not parse.
ADDRESS=128.XXX.YYY.ZZZ
NETMASK=255.255.255.255
...

当然,无论如何我都可以解析该文件,但是如果有注释,则可能意味着无法保证内容是可解析的,或者在下一次 systemd 更新时不会改变格式。

有没有合适的方法来检索这些信息?我找到了hostnamectl可以使用的主机名:

hostnamectl --json=short | jq '.Hostname'

但是,这只能提取机器的当前主机名(无论如何由命令报告,并且我不能保证这对应于 DHCP 主机名),或者如果我使用,则提取文件hostname的内容。/etc/hostname.StaticHostname

如果我想停止解析不应该解析的文件,该怎么办?

相关内容