python - 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 上运行。
解决方案
这取决于您的操作系统设置。例如,这里有一个关于如何检测 Ubuntu 中是否启用了 DHCP的相关问题。
推荐阅读
- python - Hitboxes 仅从一侧缩放 pygame
- tensorflow - LSTM 平稳时间序列预测不稳定模型
- ios - 如何在 iOS SDK 中刷新 Twilio 对话的令牌?
- php - 我无法使用 ngrok 访问 openserver 中“域”目录的文件,以便在 Windows 中为电报机器人设置 webhook
- flutter - 如何使用 Flutter TextFormField 设置状态()
- c# - 如何在 Content Presenter 中设置我的视图
- php - 按查询排序返回不同的排序
- elasticsearch - 单击特定查询结果后如何编写关联查询
- selenium - Selenium 正在抛出 NoSuchElementException
- batch-file - 在批处理文件中,我如何才能使它仅在不存在且没有错误的情况下创建联结