Scapy:如何使用 srp1(使用第 2 层)检查 ping 是否成功

Scapy: How to check if ping using srp1 (using Layer 2) was successful

我使用 scapy 模块创建包并希望通过第 2 层发送它们,因为这比第 3 层性能更高。 我的包裹看起来像这样:

resp = srp1(Ether()/IP(dst="192.168.0.11")/ICMP(), verbose=True)

'resp'是一个列表中的result/answer。 resp[0] 显示全部内容。但是因为我发送了以太币,所以结果是十六进制的。

如何检查 ping 是否成功。只是 convert/decode 它不起作用,因为类型是:

<class 'scapy.layers.l2.Ether'>

scapy 是否提供了一个功能来完成这项工作或至少显示人类可读的结果以便手动验证?

resp.summary()

或者

repr(resp)

或者

resp.show()

它们按冗长程度排序。他们的输出都不同

你应该仔细阅读 scapy 的文档 https://scapy.readthedocs.io/en/latest/