如何在 Python 中找到 LAN 的广播地址?

How can I find the broadcast address of a LAN in Python?

我正在编写一个依赖于向当前 LAN 广播 UDP 数据报的能力的脚本,我想知道是否有一种方法可以直接从 Python.[=12= 找到广播 IP ]

我目前只是硬编码如下,这可能会在不同的子网上崩溃:

self.UDP_IP = '192.168.1.255'
sock = socket(AF_INET, SOCK_DGRAM)
sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
sock.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
sock.sendto('<Some message>', (self.UDP_IP, <Some port>))

如果你想广播到你的局域网,为什么要使用定向广播?以 255.255.255.255 为目标,您的传输将始终成为以太网广播,这似乎可以满足您的需求。但我可能误解了你的意思。