gpt4 book ai didi

python - 如何在 python 的 consul 中查找 dns 服务记录?

转载 作者:太空狗 更新时间:2023-10-30 02:04:03 29 4
gpt4 key购买 nike

我正在使用 consul在我的环境中发现服务。 Consul 的 DNS 服务运行在非标准 DNS 端口上。我目前的解决方案更多是变通,我想找到更 pythonic 的方式来做到这一点:

digcmd='dig @127.0.0.1 -p 8600 chef.service.consul +short' # lookup the local chef server via consul
proc=subprocess.Popen(shlex.split(digcmd),stdout=subprocess.PIPE)
out, err=proc.communicate()
chef_server = "https://"+out.strip('\n')

最佳答案

您可以使用 dnspython使用 python 进行查询的库。

from dns import resolver

consul_resolver = resolver.Resolver()
consul_resolver.port = 8600
consul_resolver.nameservers = ["127.0.0.1"]

answer = consul_resolver.query("chef.service.consul", 'A')
for answer_ip in answer:
print(answer_ip)

使用像 dnspython 这样的库比在子进程中调用 dig 更健壮,因为创建进程会影响内存和性能。

关于python - 如何在 python 的 consul 中查找 dns 服务记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24962245/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com