Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用dig命令_Python_Dns_Cname_Dig - Fatal编程技术网

在python中使用dig命令

在python中使用dig命令,python,dns,cname,dig,Python,Dns,Cname,Dig,只是一个警告,我的python技能几乎不存在,但我正在努力学习 我在周末通过DNS控制面板对大约58个CNAMES进行了一些更改(只是更改了目的地) 我想知道是否有办法用python为每个CNAME编写一个DIG列表,而不是检查每个记录的更改是否已生效 我使用的dig命令是这样的 dig @ns1.netnames.net www.rac.co.uk CNAME 我希望看到rac-secure.gslb2.rac.co.uk返回 我试过这样的方法: import os os.system( '

只是一个警告,我的python技能几乎不存在,但我正在努力学习

我在周末通过DNS控制面板对大约58个CNAMES进行了一些更改(只是更改了目的地)

我想知道是否有办法用python为每个CNAME编写一个DIG列表,而不是检查每个记录的更改是否已生效

我使用的dig命令是这样的

dig @ns1.netnames.net www.rac.co.uk CNAME
我希望看到
rac-secure.gslb2.rac.co.uk
返回

我试过这样的方法:

import os
os.system( 'dig<exampledomain.com>'CNAME )
导入操作系统
操作系统('dig'CNAME)
但这似乎不起作用(正如我提到的,我缺乏python技能),我是走在正确的道路上,还是应该使用类似dnspython的东西?我以前在stack overflow社区的帮助下使用过dnspython模块,但我发现文档非常混乱

任何指向正确方向的指示都将不胜感激

问候


克里斯。

操作系统
已弃用。使用:


从python调用dig是很有可能的,只使用python库可能会节省您的工作。看一看哪一个可能会让一切变得更容易——另外,您不必解析输出格式

import socket
import dns.resolver

# Basic query
for rdata in dns.resolver.query('www.yahoo.com', 'CNAME') :
    print rdata.target

# Set the DNS Server
resolver = dns.resolver.Resolver()
resolver.nameservers=[socket.gethostbyname('ns1.cisco.com')]
for rdata in resolver.query('www.yahoo.com', 'CNAME') :
    print rdata.target

我在尝试运行该命令时遇到了一个相当大的错误:回溯(最近一次调用):文件“C:/Users/Chris/Documents/work/python/cname.py”,第5行,在proc=subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE)文件“C:\Python26\lib\subprocess.py”,第623行,在_init\uerrread,errwrite)文件中“C:\Python26\lib\subprocess.py”,第833行,在_execute\u child startupinfo)窗口错误:[错误2]系统找不到指定的文件错误:
[Error 2]系统找不到指定的文件暗示(或至少建议)你没有一个名为
dig
的可执行文件。啊,我刚刚在工作中尝试了这个方法,效果很好,这一定与我的家庭桌面有关。谢谢。只是澄清一下,#基本查询是否只检查你的isp报告的内容,而#设置dns服务器检查名称服务器报告的内容?基本查询使用默认的/etc/resolv.conf名称服务器,而设置版本允许您指定要调用的名称服务器。它应该是dnspython而不是dynpython。但是中的6个字符限制使我无法编辑上面的答案。您需要安装才能使用python 3
import socket
import dns.resolver

# Basic query
for rdata in dns.resolver.query('www.yahoo.com', 'CNAME') :
    print rdata.target

# Set the DNS Server
resolver = dns.resolver.Resolver()
resolver.nameservers=[socket.gethostbyname('ns1.cisco.com')]
for rdata in resolver.query('www.yahoo.com', 'CNAME') :
    print rdata.target