Нуждается в tutleage с разбором TCP DNS Request с использованием Scapy.
Вот как я анализирую входящий DNS-запрос UDP:
In [1]: from scapy.all import *
In [10]: udp_request=b' \xaa\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03cnn\x03com\x00\x00\x10\x00\x01'
In [11]: DNS(udp_request).qd
Out[11]: <DNSQR qname='cnn.com.' qtype=TXT qclass=IN |>
Это просто замечательно!Тем не менее, я борюсь с поиском входящего запроса DNS, который использует TCP.
In [12]: tcp_request = b'\x00\x19\x83\xec\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03cnn\x03com\x00\x00\x10\x00\x01'
In [13]: DNS(tcp_request)
Out[13]: <DNS id=25 qr=1 opcode=QUERY aa=0 tc=1 rd=1 ra=1 z=1 ad=1 cd=0 rcode=12 qdcount=256 ancount=1 nscount=0 arcount=0 qd='' an=<DNSRR rrname='.' type=MD rclass=25454 ttl=1845715823 rdata='' |> ns=None ar=None |>
In [14]: DNS(tcp_request).qd
Out[14]: b''
Обратите внимание, он показывает пустой вывод.Я искал, и, очевидно, это возможно (ссылка: https://github.com/secdev/scapy/issues/819 и др.).Как я могу заставить это работать?