在Scapy上,当我们使用sniff()
函数拦截流量时,是否可以过滤我们自己创建的数据包类型?例如,我创建了一个名为CSTP的数据包,如下所示:
class CustomPacket(Packet):
name = "CSTP"
fields_desc = [
ShortField("custom_field", random.getrandbits(16)),
...
]
那么是否有可能仅过滤我们特殊类型的数据包,以便直接在CustomPacket
操作中操作prn
实例,而不是TCP或IP数据包?
def verify_cstp(pkt):
print("CSTP packet received!", pkt.custom_field)
if __name__ == "__main__":
sniff(filter="cstp", prn=verify_cstp)
我要拥有的重要功能是直接在CustomPacket
函数中操作verify_cstp
实例。也许可以改为过滤TCP数据包并使用其有效载荷来创建CustomPacket
实例,但是如何?
感谢您的帮助。