【问题标题】:Python DHCP enabled disabled checkPython DHCP启用禁用检查
【发布时间】:2021-01-04 05:44:44
【问题描述】:

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

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

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

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

现在开始讨论: python 服务器可以有一个静态 IP,也可以连接到 DHCP 服务器——如果连接到 DHCP 服务器,我将无法访问 DHCP 服务器。

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

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

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

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

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

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

【问题讨论】:

  • 为什么不直接使用 DNS 和主机名?
  • 贾里德·史密斯,感谢您的评论。可悲的是,这不是一个选择。至少目前
  • 为什么不呢?您可能想详细说明您实际尝试使用服务器/客户端应用程序完成的工作,这开始闻起来像 XY problem
  • Jared Smith,出于安全原因,设备不会仅通过 LAN 连接到 Internet。有很多配置,例如系统上只有一个python服务器没有DHCP服务器。用户需要在不知道 IP 的情况下在现场连接到它。 python 客户端通过多播连接到服务器并获取图片上显示的信息。然后用户可以更改他的计算机配置以能够连接到服务器。第二种配置,局域网作为DHCP服务器,我们的python服务器与之相连,python客户端和之前一样工作。
  • 我已经与服务器建立连接。这不是问题。我想知道我目前连接的 IP 是动态 IP 还是静态 IP,以防我失去通信或将来我需要再次连接到该服务器。如果我有静态 IP,我可以将 IP 保存在数据库中并跳过发现步骤。

标签: python python-3.8 dhcp


【解决方案1】:

这取决于您的操作系统设置。例如,这是how to detect whether DHCP is enabled in Ubuntu 上的一个相关问题。

【讨论】:

  • 感谢您的回答 Florian,如前所述,用户将无法访问 Python 服务器的 CLI、终端、GUI 或 IP。这就是为什么在这种情况下使用您所指出的问题中的命令对我有帮助的原因。
  • 如果您在服务器上运行 Python(这就是我理解您的问题的方式),那么您可以打开我通过普通 Python 工具链接的答案中提到的文件(例如 open)或运行通过subprocess 模块命令。
猜你喜欢
  • 2013-03-27
  • 2014-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 2012-11-06
  • 2018-09-08
  • 2014-08-16
相关资源
最近更新 更多