如何验证Scapy中的数据包是否具有Raw层?

问题描述

您好,这就是我的代码

#!usr/bin/env python

import scapy.all as scapy
from scapy_http import http

def sniff(interface):
    scapy.sniff(iface=interface,store=False,prn=process_sniffed_packet)

def process_sniffed_packet(packet):
    if packet.haslayer(http.HTTPRequest):`enter code here`
        if packet.haslayer(Raw)
            print(packet[scapy.Raw].load)

sniff("eth0")

但是,每次我运行此代码时,都会出现以下错误

    if packet.haslayer(Raw)
                          ^
SyntaxError: invalid Syntax

解决方法

您在这一行缺少一个冒号:

if packet.haslayer(Raw):

看到您如何使用 import scapy.all as scapy 而不是 from scapy.all import *,我认为它也应该是

if packet.haslayer(scapy.Raw):