访问Scapy的内部协议层

时间:2012-10-27 15:39:24

标签: python networking tcp scapy

我正在用Python编写我的第一个程序。 我正在使用第三方工具包与网络数据包进行交互(Scapy)。

当我使用这种方法时:

p=sr1(IP(dst="google.com")/TCP())

结果是:

<IP  version=4L ihl=5L tos=0x0 len=44 id=18972 flags= frag=0L ttl=44
proto=tcp chksum=0x25bd src=173.194.39.134 dst=192.168.137.2
options=[] |<TCP  sport=www dport=ftp_data seq=1295300429 ack=1
dataofs=6L reserved=0L flags=SA window=14300 chksum=0x3c7e urgptr=0
options=[('MSS', 1430)] |<Padding  load='\x00\x00' |>>>

我只能通过chksum访问IP p.chksum,但我如何才能访问chksum的{​​{1}}?

1 个答案:

答案 0 :(得分:2)

作为一般准则,您应该使用

>>> p[TCP].chksum

但是这仅适用于接收的数据包,因为校验和是在发送时计算的。您可以使用show2()方法检索未传输数据包的校验和。