【问题标题】:How to stop broadcast mac and print only actual mac address如何停止广播mac并只打印实际的mac地址
【发布时间】:2022-01-11 11:19:14
【问题描述】:

只有当我得到实际的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

【问题讨论】:

    标签: python python-3.x networking arp pyshark


    【解决方案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'])
    

    【讨论】:

    • 这是答案吗?
    • 是的@Timus
    • 好的,现在我看到了区别。也许您可以将答案减少到您必须更改的部分,或者至少指出该部分。否则答案很难阅读。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2014-08-07
    • 2022-06-28
    • 2016-10-14
    相关资源
    最近更新 更多