如果我使用sr1发送www.google.com的DNSQR,则会得到多个DNSRR的答复,例如(使用完成ans[DNSRR].show()):
###[ DNS Resource Record ]###
rrname= 'www.google.com.'
type= A
rclass= IN
ttl= 294
rdlen= 4
rdata= '173.194.35.176'
###[ DNS Resource Record ]###
rrname= 'www.google.com.'
type= A
rclass= IN
ttl= 294
rdlen= 4
rdata= '173.194.35.178'
###[ DNS Resource Record ]###
....
Run Code Online (Sandbox Code Playgroud)
有没有一种巧妙的方法可以迭代这些DNSRR?我使用正则表达式和以下代码:
def get_ip_addr(s):
pattern = r'[0-9]+(?:\.[0-9]+){3}'
match = re.search(pattern, s)
if match:
return match.group()
return None
def resolve_host(host, nserver):
print "resolving host: " + host + " (using nserver: " + nserver + ")"
dns_pkt = IP(dst=nserver)/UDP()/DNS(rd=1, …Run Code Online (Sandbox Code Playgroud) scapy ×1