繁体   English   中英

使用 scapy (python) 删除以太网报头

[英]Ethernet header removal using scapy (python)

我正在尝试使用 pcap 文件。 对于预处理阶段,我正在尝试使用 scapy 删除以太网标头,但不确定这是否是正确的方法。 任何想法都将不胜感激。 谢谢

我正在使用 Jupyter notebook,我使用 python 和 scapy 来读取 pcap 文件。

Packet summary: 
'Ether / IP / UDP 131.XXX:XXX:XXX:netbios_ns > 131.XXX:XXX:XXX:netbios_ns / NBNSQueryRequest'

Tried:
pk1= ['Ether / IP / UDP 131.XXX:XXX:XXX:netbios_ns > 131.XXX:XXX:XXX:netbios_ns / NBNSQueryRequest']
pkt2=pk1['NBNSQueryRequest']
pk1[Ether].remove_payload()
pk1 /=pkt2

如果我正确理解您的问题,您可以通过执行以下操作来访问有效负载:

  1. pk1[1]

  2. pk1.payload

假设您有一个包含以下层的 Packet 对象:

pkt = Ether()/IP()/ICMP()

数据包看起来像这样:

print(repr(pkt)) 
# <Ether  type=IPv4 |<IP  frag=0 proto=icmp |<ICMP  |>>>

pkt实际上是一个以太网数据包,所有其他层都封装为有效负载,因此您可以使用:

pkt = pkt.payload
# Or
pkt = pkt[Ether].payload

你最终会得到:

print(repr(pkt))
# <IP  frag=0 proto=icmp |<ICMP  |>>

您可以在 Wireshark 中打开捕获文件,go 到文件菜单,然后“导出 PDU”并指定要导出的过滤器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM