2015-12-02 72 views
1

我需要构建RDNS请求中包含的Python地址列表。 的Scapy的答案是这样的:使用Scapy提取包含在RDNS请求中的地址

<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

当谈到资源记录时,Scapy的DNS层有点棘手,因为反序列化的资源记录似乎不像packetlistfields那样接口。

这应该给你如何进入这些领域的想法:

>>> 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']