Я хочу проанализировать TCP-пакеты с помощью scapy. И я использую pkt.sprintf ('% Raw.load%') для извлечения tcp-данных. Но выходная строка имеет что-то неправильное с длиной. но «\» считается str, а не Escaped character.so '\ 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()
Длина данных каждого ТСР должен быть 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 вас!