Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中找到LAN的广播地址?_Python_Sockets_Network Programming - Fatal编程技术网

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

如何在Python中找到LAN的广播地址?,python,sockets,network-programming,Python,Sockets,Network Programming,我正在编写一个脚本,它依赖于将UDP数据报广播到当前LAN的能力,我想知道是否有一种方法可以直接从Python找到广播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.

我正在编写一个脚本,它依赖于将UDP数据报广播到当前LAN的能力,我想知道是否有一种方法可以直接从Python找到广播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>))
self.UDP_IP='192.168.1.255'
插座=插座(自动线、插座)
sock.setsockopt(SOL_插座,SO_REUSEADDR,1)
sock.setsockopt(SOL_套接字,SO_广播,1)
sock.sendto(“”,(self.UDP_IP,))

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

有多种方法可以获取网络掩码,并从中推断广播地址。您没有误解,255.255.255.255似乎很好用!顺便说一句,IPv6等价物将是一个类似ff02::1的多播。