首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中使用dig命令

在python中使用dig命令
EN

Stack Overflow用户
提问于 2018-09-04 04:48:36
回答 3查看 0关注 0票数 0

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

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

而不是检查每个单独记录的变化是否已经存在,我想知道是否有办法在python中编写每个CNAME的挖掘列表?

我使用的dig命令就是这样的

代码语言:javascript
复制
dig @ns1.netnames.net www.rac.co.uk CNAME

我希望看到rac-secure.gslb2.rac.co.uk回来。

我试过类似的东西:

代码语言:javascript
复制
import os
os.system( 'dig<exampledomain.com>'CNAME )

但这似乎不起作用(因为我提到我的python技能缺乏),我是在正确的道路上,还是我应该使用像dnspython这样的东西?我之前使用过dnspython模块,有很多来自堆栈溢出社区的帮助,但我发现文档真的很混乱。

任何指向正确方向的人都会非常感激。

问候

克里斯。

EN

回答 3

Stack Overflow用户

发布于 2018-09-04 13:39:54

os.system已弃用。使用subprocess.Popen

代码语言:javascript
复制
import subprocess
import shlex

cmd='dig @ns1.netnames.net www.rac.co.uk +short'
# cmd='dig @ns1.netnames.net www.rac.co.uk CNAME'
proc=subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE)
out,err=proc.communicate()
print(out)
# rac-secure.gslb.norwichunion.com.
票数 0
EN

Stack Overflow用户

发布于 2018-09-04 14:26:51

很有可能从python中调用dig,它可能会让你的工作只能使用python库。看看dnspython,这可能会更容易 - 而且你不必解析输出格式。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-11-14 16:57:16

我去,腾讯云会直接照搬StackOverflow上的内容??只是翻译一下???https://stackoverflow.com/questions/5235569/using-the-dig-command-in-python

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档