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

时间:2011-07-12 14:30:43

标签: python networking scapy

我正在尝试使用Scapy作为嗅探器来识别具有错误校验和的数据包。我可以通过访问

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

然后我使用

删除它
del packet[TCP].chksum 

我想做点什么

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

据我所知,使用show2()会重新计算校验和,但无论如何都要访问此属性以便比较原始值?调用show2()只显示校验和的内容,并且不会设置数据包中的任何值。

感谢您的任何澄清

1 个答案:

答案 0 :(得分:2)

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

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