2015-12-02 2 views
1

Мне нужно создать список адресов Python, содержащийся в запросе RDNS. scapy ответ выглядит следующим образом:Извлечение адресов, содержащихся в запросе RDNS с использованием Scapy

<DNSRR rrname='www.google.ca.' type=A rclass=IN ttl=118 rdata='184.150.153.232' |<DNSRR rrname='www.google.ca.' type=A rclass=IN ttl=118 rdata='184.150.153.226' | ... 

Как я могу извлечь все поля RDATA и поместить их в списке Python? (В приведенном выше ответе там, где 16 из них).

ответ

1

Уровни DNS Scapy немного сложны, когда дело доходит до записей ресурсов, поскольку десериализованные записи ресурсов не кажутся интерфейсами, такими как padlistfields.

Это должно дать вам представление о том, как получить доступ к этим поля:

>>> answer = sr1(IP(dst="8.8.8.8")/UDP(dport=53)/DNS(rd=1,qd=DNSQR(qname="www.google.com")),verbose=0) 
>>> rdatalst = [] 
>>> for rr in xrange(p[DNS].ancount): 
... rdatalst.append(p[DNS].an[x].rdata) 
>>> print rdatalst 
['212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59', '212.247.8.59']