ip python windows 10上的BroadCast消息

时间:2015-11-03 08:06:13

标签: python broadcast

我正在尝试编写一个简单的信使,将广播信息发送到本地网络中的所有计算机。该代码适用于Windows 7,Ubuntu 14.10但是当我尝试在Windows 10上使用它时,它甚至不会发送udp包进行广播,它什么也不做(用wireshark检查,没有外包)

import socket
import sys
import traceback

dest=('<broadcast>',10100)
UDPSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

UDPSock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while True:
    data = raw_input("Enter message to send or type 'exit': ")
    UDPSock.sendto(data, dest)
    if data == "exit":
        break
UDPSock.close()

1 个答案:

答案 0 :(得分:1)

更新到Win10后,我发现了同样的问题。 我的WOL.py(Wakeup On Lan)不再起作用了。 检查tcpdump。

我现在找到了解决方法。

# Broadcast it to the LAN.
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(send_data, ('172.16.1.255', 9)

使用广播位设置将地址从'<broadcast>'更改为网络地址可在我的系统上运行。

E.g。我有一个带有IP 172.16.1.x网络掩码255.255.255.0的C类网络。将'<broadcast>'更改为'172.16.1.255'可以解决问题。通常这是由OS完成的。

PS:很抱歉上次发错了。