如何在Linux上用python绕过nsswitch.conf进行DNS查询且不需额外包
我想要进行DNS查询,以检查一下/etc/hosts文件中的某些条目是否过时(现在有用的DNS)或者与DNS的回答冲突。nsswitch.conf文件被设置为优先查找/etc/hosts。
gethostbyname()或getaddrinfo()这两个函数都不适用,因为它们会使用操作系统的机制(nsswitch.conf)。
我知道有一个叫pythonDNS的包,但不幸的是,在这些系统上安装额外的包比较困难。而且可用的Python版本也比较旧(python23)。
到目前为止,我看到的唯一可能的解决方案是解析nslookup或dig的输出。但我真的不喜欢这个主意,因为这涉及到很多复杂的内容(比如CNAME记录、多个记录等等)。
我在寻找一个简单的类或函数来进行DNS A记录的查找。
4 个回答
0
我一直喜欢evdns这个东西。
http://linux.die.net/man/3/evdns
似乎有一个叫做pyevent的Python绑定。
http://code.google.com/p/pyevent/source/browse/trunk/evdns.pxi?r=44
1
Twisted Names 里有一个 DNS 客户端。