[英]BroadCast message over ip python windows 10
我正在嘗試編寫一個簡單的信使,將廣播信息發送到本地網絡中的所有計算機。 該代碼適用於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()
更新到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>'
更改為網絡地址可在我的系統上運行。
例如,我有一個帶有IP 172.16.1.x網絡掩碼255.255.255.0的C類網絡。 將'<broadcast>'
更改為'172.16.1.255'
就可以了。 通常這是由OS完成的。
PS。:抱歉錯誤發布,上次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.