0

I want to print only when i got actual mac address else wait

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'])

output:

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
Timus
  • 10,974
  • 5
  • 14
  • 28
roXx
  • 69
  • 9

1 Answers1

0

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'])
roXx
  • 69
  • 9