python module for nslookup
python module for nslookup
Im using the following code:
import socket
ip_list = []
ais = socket.getaddrinfo(www.yahoo.com,0,0,0,0)
for result in ais:
ip_list.append(result[-1][0])
ip_list = list(set(ip_list))
Or using a comprehension as:
ip_list = list({addr[-1][0] for addr in socket.getaddrinfo(name, 0, 0, 0, 0)})
You need to use DNSPython
import dns.resolver
answers = dns.resolver.query(dnspython.org, MX)
for rdata in answers:
print Host, rdata.exchange, has preference, rdata.preference
python module for nslookup
the problem is that socket.gethostbyname() returns only one ip-address. nslookup returns as many as it has.
I use:
import subprocess
process = subprocess.Popen([nslookup, www.google.com], stdout=subprocess.PIPE)
output = process.communicate()[0].split(n)
ip_arr = []
for data in output:
if Address in data:
ip_arr.append(data.replace(Address: ,))
ip_arr.pop(0)
print ip_arr
it will print:
[54.230.228.101, 54.230.228.6, 54.230.228.37, 54.230.228.80, 54.230.228.41, 54.230.228.114, 54.230.228.54, 54.230.228.23]