我需要在我的 C++ Linux 应用程序中检测 IP 地址续订,并检查新地址是否与旧地址不同。我可以访问运行 OpenWrt 的路由器。我可以更改租约时间,但我找不到在每次续订过程中强制更改地址的方法。这可能吗?也许一旦分配了 IP 地址,续订时就永远不会改变,唯一的方法是在租约时间后获取地址而无需续订,并希望我的旧地址分配给另一个客户端?
提前感谢您的任何建议。
答案1
根据定义,续订尝试更新同一 IP 地址的现有租约。
如果您想从客户端强制使用新的 IP 地址,您可以更改网络适配器的 MAC 地址。DHCP 服务器会将其视为新客户端并分配新地址。
您可能需要查看 macchanger 包http://manpages.ubuntu.com/manpages/bionic/man1/macchanger.1.html因为它在这方面具有一些不错的功能。
macchanger 是一个 GNU/Linux 实用程序,用于查看/操作网络接口的 MAC 地址。”
如果您想从服务器端强制使用新的 IP 地址,您可以更改配置,使当前 IP 地址不再可用。这可以通过创建分配给另一台(可能是虚构的)机器/mac 地址的预留、修改范围以使旧地址不再包含在范围内、完全禁用范围或服务器以使服务器不响应,或者使用其他方法阻止服务器发出续订。