2016-05-14 76 views
0

我正在嘗試使用Python來收聽組播流量。我嘗試聽解碼鯉魚協議,所以它是原始的交通而不是UDP。但我沒有收到任何數據。Python原始組播

如果在同一臺主機上,我使用的器件的應用監聽鯉魚TRAFIC(ucarp),應用程序看到TRAFIC,所以它應該是工作。

這裏是我使用的代碼:

import socket 
import struct 

MCAST_GRP = '224.0.0.18' 

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, 112) 

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY) 
s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) 

print("waiting for data...") 
print(s.recvfrom(10)) 

回答

0

事實上,這個代碼工作。我正在使用的網絡設置,不是。我不知道爲什麼這是與ucarp,而不是python。

這是行不通的設置是運行Python和在OpenBSD發送鯉魚一個KVM虛擬機中的libvirt的主機。

工作建立在兩個虛擬機,一個OpenBSD系統發送的鯉魚和一個是Debian/Linux上運行的Python代碼。