You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
868 B
36 lines
868 B
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import socket
|
|
import re
|
|
import dns.resolver
|
|
|
|
exp = re.compile('([^\.]+)')
|
|
|
|
hosts = []
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
|
for host in sys.stdin:
|
|
host = host.replace('\n', '')
|
|
if host == "" or host[0] == "#":
|
|
print(host)
|
|
continue
|
|
|
|
if host[0] == '!':
|
|
print(host[1:])
|
|
continue
|
|
|
|
try:
|
|
if True:
|
|
res = dns.resolver.query(host)
|
|
ips = socket.getaddrinfo(str(res.qname), None)
|
|
|
|
for ip in ips:
|
|
entry = (ip[4][0], str(res.qname)[:-1], exp.match(host).group(0))
|
|
if not entry in hosts:
|
|
print("{0:45} {1} {2}".format(ip[4][0], str(res.qname)[:-1], exp.match(host).group(0)))
|
|
hosts.append(entry)
|
|
except:
|
|
sys.stderr.write('Failed to get IP for: {0}\n'.format(host))
|
|
|