首页 > 解决方案 > Python DHCP启用禁用检查

问题描述

我目前在 Windows 上使用 Python 3.8.5,但该脚本也应该在 linux 和 macOS 上运行。

我正在创建 UDP 服务器和客户端,并通过多播在它们之间建立通信。客户端不知道高级服务器的 IP,因此它是一个“发现工具”,可以让我了解有关它已接收数据的服务器的信息。-这是有效的-

在服务器上,我使用 netifaces 来获取有关接口的信息。

服务器向客户端发送IP地址、掩码、网关等信息。-我从 netifaces 获得的信息并且正在工作-。我得到的数据示例:

在此处输入图像描述 在此处输入图像描述

现在问题来了: python 服务器可以有一个静态 IP,也可以连接到 DHCP 服务器——如果它连接到 DHCP 服务器,我将无法访问 DHCP 服务器——。

我想知道 DHCP 何时在 python 服务器上启用或禁用,以便我可以将其作为标志连同其余信息一起发送给客户端。

这个想法是让客户端知道他正在连接的 IP 可以更改,他可能会失去连接,并且需要再次启动发现工具。

因为用户不会提前知道python服务器是否连接到DHCP服务器或者知道python服务器的IP地址或者可以访问python服务器命令行或配置,使用ip addr show、ipconfig、ifconfig等连接之前的命令不是一个选项。

我已经看到人们使用scrapy进行DHCP通信,但似乎它并没有解决我希望完成的事情。我不需要配置 DHCP,只需检测我的 python 服务器 IP 是静态的还是动态的。

我已经搜索了超过 4 天,但没有找到可能的解决方案。我并不是要在银勺中找到解决方案,只是为了指向正确的方向。

**编辑:我忘了提到 python 服务器将在 Ubuntu 16.04 和 20.04 上运行。

标签: pythonpython-3.8dhcp

解决方案


这取决于您的操作系统设置。例如,这里有一个关于如何检测 Ubuntu 中是否启用了 DHCP的相关问题。


推荐阅读