Я не знаю, как это сделать в Python, но можно получить MAC-адрес. Например, используя tcpdump, я помещаю все пакеты в файл:
sudo tcpdump -i enp0s31f6 -w file_name port 6665
тогда в python прочитайте это с:
packetlist = rdpcap("./file_name")
for pkt in packetlist:
print pkt.src, pkt.load
Вы можете увидеть MAC-адрес
редактирование:
Я нашел один способ сделать это:
Перехватывать все пакеты с помощью scapy с помощью функции sniff, затем фильтровать пакеты, чтобы получить только то, что вам нужно. Там вы можете использовать Mac-адрес
например из моего проекта:
sniff(prn=self._pkt_callback, store=0)
def _pkt_callback(self, pkt):
if not self.sniffer_on:
return
if Ether not in pkt or pkt[Ether].type != 0x800:
return
if pkt[IP].proto != 17: # 17 means UDP package
return
if pkt[UDP].dport != 6665:
return
print pkt.src, pkt.load #src is mac address