python - 将 TCP 校验和与 Scapy 进行比较?

标签 python networking scapy

我试图在使用 Scapy 作为嗅探器时识别校验和不正确的数据包。我可以通过访问

获得原始校验和
packet[TCP].chksum  

然后我使用

删除它
del packet[TCP].chksum 

我想做这样的事情

if(originalChecksum == recomputedChecksum):
     # Checksum is valid

我知道使用 show2() 会重新计算校验和,但是是否可以访问此属性以便与原始属性进行比较?调用 show2() 只是显示校验和的内容,并不设置数据包中的任何值。

感谢任何澄清

最佳答案

为了让 Scapy 重新计算所有字段,通过将数据包转储为字符串来组装数据包,然后解析该字符串。

originalChecksum=packet['TCP'].chksum
del packet['TCP'].chksum
packet=IP(str(packet))
recomputedChecksum=packet['TCP'].chksum

关于python - 将 TCP 校验和与 Scapy 进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6665844/

相关文章:

python - 无法使用 Apache 将 sklearn 导入 Google Compute Engine 上的 Flask 应用程序

python - 使用scapy检测ARP中毒

python - 接收器的scapy?

python - 如何指定scapy启动文件?

python - 为什么我的线程在启动之前就执行目标函数?

python - 使用 SymPy 一般解析和求解方程

c# - 如何设置连接到主机 PC 的设备的 IP 地址? C# 窗体?

java - 通过网络调试 Java 应用程序

linux - wget 失败,没有主机 wget 的路由

Python3 int, long统一实现