0
我想通过scapy分析TCP数据包。我使用pkt.sprintf('%Raw.load%')来提取tcp数据。但输出字符串的长度有问题。但是'\'被认为是str而不是Escaped字符。所以'\ x11'被认为是4个不同的字符串而不是ASCII字符。scapy.sprintf的输出是一个原始字符串吗?为什么长度错误?
这里是我的代码:
from scapy.all import *
def findTCPdata(pkt):
raw = pkt.sprintf("%Raw.load%")
print raw
print 'length of TCP data: '+ str(len(raw))
def main():
pkts = rdpcap('XXX.pcap')
for pkt in pkts:
findTCPdata(pkt)
if __name__ == '__main__':
main()
每个TCP数据的长度应为17,而不是在屏幕(53,52,46,52)的值。 4 TCP数据是:
'U\x11\x04\x92\x02\x03\x1e\[email protected]\x03\xf8q=e\xcb\x15\r'
'U\x11\x04\x92\x02\x03.\[email protected]\x03\xf8q=e\xcb\xb8\x05'
'U\x11\x04\x92\x02\x03X\[email protected]\x03\xf8q=e\xcbiO'
'U\x11\x04\x92\x02\x03n\[email protected]\x03\xf8q=e\xcb\xdb\xe3'
请帮我解决problem.Thank你!