使用 Scapy 获取数据包的源 IP

Getting source IP of packet using Scapy

所以我正在尝试使用 Scapy 获取我收到的数据包的源 IP,但它似乎不起作用。我一尝试打印 IP,程序就崩溃了。

我发送这个数据包

send(IP(dst="10.0.0.12")/UDP(dport=53))

它已收到,我确定了这一点,我什至在收到后打印了 "Potato",并且它起作用了。 现在,我尝试用这个

打印源 IP
from scapy.all import *
import sys
import time

rcvPkt = sniff(count = 1, filter = "port 53")
print rcvPkt.getlayer(IP).src

但每当我这样做时,它都会说 'list' 对象没有属性 'src'。我该怎么办?

sniff() returns 包含所有嗅探数据包的 list-like 对象,但您将其视为一个单独的数据包。试试这个:

>>> print rcvPkt[0].getlayer(IP).src
192.168.42.1