私は自分のUDPスニッファのためにマルチキャストからデータを受信しますが、IPv4でのみ受信します。 私のコードは、次のようになりますRAWソケットIPv6でのUDPマルチキャスト
try:
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)
except socket.error as msg:
print('Socket could not be created. Error Code : ' + str(msg[0]) + ' Message ' + msg[1])
sys.exit()
mreq = struct.pack("4sl", socket.inet_aton('239.255.11.3'), socket.INADDR_ANY)
# receive a packet
s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
packet = s.recvfrom(65000)
しかし、私は、IPv4アドレスを設定した場合にのみ、私はデータを受信しています、と私はまた、IPv6マルチキャストアドレスから受信します。 私は本当にありがとうと思っています。私の英語は残念です。 ;-)
私のアイデアは、このでした:あなたも、自分が送信したマルチキャストパケットを取得したい場合は
あなたが追加する必要がありますとs.setsockopt(socket.IPPROTO_IP、socket.IPV6_JOIN_GROUP、mreq) しかし、私は知らない、どのように "パック" mreqまたはそれを設定します。 –