使用dig和python列出所有主机

使用dig和python列出所有主机,python,linux,dns,dig,Python,Linux,Dns,Dig,我是python和编程的新手,只是找不到编写所需代码的方法。因此,请帮助: 背景: 我将检查多个不同的linux环境,以便从resolv.conf获取名称服务器ns和域信息,并将这些值传递给dig 多亏了这个论坛和谷歌,我才能够获得ns和域名信息,但仍在努力将信息传递给dig Python版本是2.7。 Linux是rhel6.x 问题: 如何使用ns和domain的返回值格式化dig命令,并提供几个参数: dig +search <domain>. axfr @<ns>

我是python和编程的新手,只是找不到编写所需代码的方法。因此,请帮助:

背景:

我将检查多个不同的linux环境,以便从resolv.conf获取名称服务器ns和域信息,并将这些值传递给dig

多亏了这个论坛和谷歌,我才能够获得ns和域名信息,但仍在努力将信息传递给dig

Python版本是2.7。 Linux是rhel6.x

问题:

如何使用ns和domain的返回值格式化dig命令,并提供几个参数:

dig +search <domain>. axfr @<ns> +noall +answer 

任何帮助都将不胜感激

你试过使用os.systemcommand吗?好的,但现在我可以用了。我编辑了这个问题。但是如何获取格式,使其只打印按ip排序的ip和主机名?请检查
# -*- coding: utf-8 -*-

### Functions start ###

def get_ns():
    with open("/etc/resolv.conf","r") as readFile:
        #print [line.split(" ")[1].strip() for line in readFile.readlines() if line.startswith("nameserver")][0]
        x = [line.split(" ")[1].strip() for line in readFile.readlines() if line.startswith("nameserver")][0]
    readFile.close()
    return x


def get_domain():
    with open("/etc/resolv.conf","r") as readFile:
        #print [line.split(" ")[1].strip() for line in readFile.readlines() if line.startswith("search")][0]
        y = [line.split(" ")[1].strip() for line in readFile.readlines() if line.startswith("search")][0]
    readFile.close()
    return y

### Functions end ###

# just to test all is working:
ns = get_ns()

# to get the dig command:
domain = get_domain()
domain1 = domain + '.'
ns1 = '@' + ns
print ns1
print domain1

list = os.system("dig +search " + domain1 + " axfr " + ns1 + " +noall +answer")
print list