UDP 멀티 캐스트를 통해 "공지 사항"을 청취하는 코드가 있습니다. 보낸 사람의 IP 주소를 얻을 수 있지만 실제로 필요한 것은 보낸 사람의 MAC 주소입니다 (IP 주소는 변경 될 수 있기 때문에).파이썬에서 멀티 캐스트 UDP 메시지의 보낸 사람의 MAC 주소 찾기?
파이썬에서이 작업을 수행하는 쉬운 방법이 있습니까?
코드 스 니펫이 참조 용으로 포함되어 있지만 불필요한 것으로 간주됩니다.
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
# Allow multiple sockets to use the same PORT number
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Bind to the port that we know will receive multicast data
sock.bind((self.interface, MCAST_PORT))
# Tell API we are a multicast socket
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 255)
# Tell API we want to add ourselves to a multicast group
# The address for the multicast group is the third param
status = sock.setsockopt(socket.IPPROTO_IP,
socket.IP_ADD_MEMBERSHIP,
socket.inet_aton(MCAST_ADDR) + socket.inet_aton(self.interface));
data, addr = sock.recvfrom(1024)
...
그것은 scapy'의 L2 소켓'와 수 있어야한다 : 거기 당신은 내 프로젝트에서, 예를 들어 MAC 주소 을 사용할 수 있습니다 /doc/usage.html – Pierz