2016-05-14 11 views
0

私はPythonでマルチキャストトラフィックを聴こうとしています。私は鯉のプロトコルを解読するのを聞こうとするので、UDPではなく生のトラフィックです。しかし、私はデータを受け取っていません。Python rawマルチキャスト

同じホスト上でcarpトラフィック(ucarp)を受信するアプリケーションを使用する場合、アプリケーションはトラフィックを参照するため、動作するはずです。

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を実行しているlibvirtホストと、openbsdがcarpを送信しているkvm VMでした。

作業設定は、2つのVM、1つのopenbsdがcarpを送り、1つのDebian/LinuxがPythonコードを実行しています。

関連する問題