我有一台 voyage 2.6.38 机器,为 DHCP 服务器运行 DNSMASQ,我想获取获取 DHCP 租约的客户端的主机名。我该怎么做呢?
答案1
如果主机发送其名称,您可以从 DNS 检索它。如果您知道其 IP 地址,则只需对该 IP 地址进行反向查找即可。这些命令之一应该有效(使用主机的 IP 地址代替 192.0.32.10):
host 192.0.32.10
nslookup 192.0.32.10
您可以检索所有租约的列表,包括文件中提供的名称(如果有)dhcp.leases
。它的位置会根据您使用的发行版而有所不同。 Ubuntu 使用/var/lib/misc/dnsmasq.leases
而 OpenWrt 使用/tmp/dhcp.leases
.如果您有 dnsmasq 的手册页,则该命令man dnsmasq
应在文档末尾提及租约文件的位置。您可以通过dhcp-leasefile
在配置或命令行中指定选项来覆盖此位置。可以使用 命令行选项-l
或选项来执行此操作。--dhcp-leasfile=
租约文件中的字段是时间戳、MAC 地址、IP 地址、主机名和客户端 ID。客户端不需要发送主机名或客户端 ID。
如果已启用日志记录,您可以查看系统日志以了解已协商哪些租约。应记录所有 DHCP 协商。如果你的租期很长,谈判就不会频繁。客户应在租赁时间一半时开始协商续约。最好将租用时间设置为至少是 DHCP 服务器合理预期停机时间的两倍。
答案2
由客户决定是否要发送它们。在初始请求中,可以将其配置为发送主机名。大多数桌面/服务器 DHCP 客户端都会执行此操作,而嵌入式客户端通常不会执行此操作。