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]

Leave a Reply

Your email address will not be published. Required fields are marked *