def gethostbyname2(self, hostname):
try:
iplist = self.dns_cache[hostname]
except KeyError:
if re.match(r'^\d+\.\d+\.\d+\.\d+$', hostname) or ':' in hostname:
iplist = [hostname]
elif self.dns_servers:
try:
record = dnslib_resolve_over_udp(hostname, self.dns_servers, timeout=2, blacklist=self.dns_blacklist)
except socket.gaierror:
record = dnslib_resolve_over_tcp(hostname, self.dns_servers, timeout=2, blacklist=self.dns_blacklist)
iplist = dnslib_record2iplist(record)
else:
iplist = socket.gethostbyname_ex(hostname)[-1]
self.dns_cache[hostname] = iplist
return iplist
评论列表
文章目录