我正在为 Raspberry Pi 开发一个 Python 应用程序,该应用程序需要某种级别的配置才能使用。这种配置可以手动完成,但考虑到 Pi 本身的最终放置,连接显示器和键盘将是不可行的。因此,将需要某种程度的自动配置。
配置几乎只是在程序开始使用之前在程序中设置一些属性,因此理想情况下,此配置信息可以通过 Web 响应传递(Raspberry Pi 将始终通过 eth0 接口连接到本地 Intranet)。
然而,问题在于将配置数据传送到 Pi 的网络服务器的主机名是不可预测的。就此而言,服务器可能位于 10.0.0.2、10.0.0.3 或 192.168.1.2,无法得知。
我想尝试使用广播地址实质上向子网上的每个主机发送请求,并等待听起来正确的响应,例如带有 200 状态代码和一些有意义的数据。然后,知道服务器的主机,它可以请求初始配置数据并继续。
我目前正在为我的网络请求使用 urllib Python 模块,但我很快发现使用广播地址来实现这个目标会令人困惑,因为我实际上是在发送一个请求,但在为多个(大部分是糟糕的)响应做准备。
有没有人用 Python 做过这样的事情?