我想检查系统中的DNS值

时间:2016-12-19 08:33:18

标签: python

我想检查系统中的DNS值。

如果命令出错,则错误应存储在不同的变量中。

这是我到目前为止所做的:

proc = subprocess.Popen(['echo', '"to stdout"'], stdout=subprocess.PIPE,)

stdout_value = proc.communicate()
print '\tstdout:', repr(stdout_value)

subprocess.call('echo #user', shell=True)
#subprocess.check_call('echo #HOME', shell=True)

1 个答案:

答案 0 :(得分:0)

你应该试试这个:

它从您作为参数传递的命令中捕获errorcode,stdout和stderr: 进口shlex 来自子进程导入Popen,PIPE

def get_exitcode_stdout_stderr(cmd):

    """
    Execute the external command and get its exitcode, stdout and stderr.
    """
    args = shlex.split(cmd)

    proc = Popen(args, stdout=PIPE, stderr=PIPE)
    out, err = proc.communicate()
    exitcode = proc.returncode
    #
    return exitcode, out, err

cmd = "..."  # arbitrary external command, e.g. "python mytest.py"
exitcode, out, err = get_exitcode_stdout_stderr(cmd)

根据您的需要,我认为您可以使用python模块来获取您想要的内容而不是使用bash cmd行。例如,要获得完全限定的域名,您可以使用:

socket.getfqdn()