Как остановить трансляцию mac и распечатать только фактический mac-адрес

#python #python-3.x #networking #arp #pyshark

#питон #python-3.x #сетевой #arp #пышарк

Вопрос:

Я хочу печатать только тогда, когда у меня есть реальный mac-адрес, иначе подождите

 import time   capture = pyshark.LiveCapture(interface='wlo2', bpf_filter='arp')  capture.sniff(timeout=3)  keys = {}  e_mac = '00.00.00.00.00.00'  for packet in capture:  keys['ip'] = packet.arp.dst_proto_ipv4   keys['mac'] = packet.arp.dst_hw_mac   if keys['mac'] != e_mac:  print(time.strftime('%b %d %H:%M:%S '), keys['mac'], keys['ip'])  

выход:

 Dec 06 12:57:08 00:00:00:00:00:00 192.168.1.40 Dec 06 12:59:53 00:00:00:00:00:00 192.168.1.40 Dec 06 13:01:46 00:00:00:00:00:00 192.168.1.195 Dec 06 13:01:55 f8:c4:f3:56:a3:70 192.168.1.1 Dec 06 13:08:24 00:00:00:00:00:00 192.168.1.5  

Ответ №1:

  import time   capture = pyshark.LiveCapture(interface='wlo2', bpf_filter='arp')  capture.sniff(timeout=3)  keys = {}  e_mac = '00:00:00:00:00:00' #forgot to add colon in ques  for packet in capture:  keys['ip'] = packet.arp.dst_proto_ipv4   keys['mac'] = packet.arp.dst_hw_mac   if keys['mac'] != e_mac:  print(time.strftime('%b %d %H:%M:%S '), keys['mac'], keys['ip'])  

Комментарии:

1. Это ответ?

2. да, это@Timus

3. Хорошо, теперь я вижу разницу. Может быть, вы могли бы свести ответ к той части, которую вам нужно было изменить, или, по крайней мере, указать на эту часть. В противном случае ответ трудно прочесть.