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.sockockopt (socket.IPPROTO_IP, socket.IPV6_JOIN_GROUP, mreq) 하지만 난 몰라 어떻게 "포장"mreq 또는 그것을 설정합니다. –