如何在 Python 中使用 scapy 和 nfqueue 从数据包中获取 ip?

How to fetch ip from a packet using scapy and nfqueue in Python?

好的,所以我已经尝试使用 packet["IP"].src 但它一直抛出此错误:

Exception TypeError: "'netfilterqueue.Packet' object has no attribute 'getitem'" in 'netfilterqueue.global_callback' ignored

在 Python 第 30 行中使用此代码:https://hastebin.com/yirahekeju.py

有人知道为什么这种情况一直发生吗?

它一直在发生,因为你没有以正确的方式使用它 - nfqueue.Packet 有一套不同的方法,它不支持 getitem:https://pypi.python.org/pypi/NetfilterQueue

它可能是这样工作的:

def check(packet):
    scapy_pkt = IP(packet.get_payload())
    print scapy_pkt.src  # source IP address
    print scapy_pkt.dst  # dest IP address
    # ... work with scapy_pkt