Query reverse dns lookups with dnspython

时间:2015-05-24 20:22:46

标签: python dns dnspython

I am trying to query reverse lookups in dnspython. Unfortunately, the from_address() function does not let me hand over a IP by variable. Any ideas why?

#!/usr/bin/env python

import dns.resolver,dns.reversename

with open("test", "r") as ips:
    for ip in ips:
        ip = str(ip)
        n = dns.reversename.from_address(ip)
        print str(dns.resolver.query(n,"PTR")[0])

I am new to python; would be great if somebody could help out!

1 个答案:

答案 0 :(得分:1)

我真的怀疑你还在研究这个问题,但是如果你打印出每个IP,你会发现每个ip都有一个换行符\ n dns.reversename.from_address()不喜欢:

192.168.1.1

192.168.1.2

192.168.1.3

这会导致异常:

dns.exception.SyntaxError: Text input is malformed.

您可以轻松更改该行:

ip = str(ip)

为:

ip = str(ip).strip()

它将删除所有空格(在格式良好的IP地址列表中应该没有空格,这样就可以了:

192.168.1.1
192.168.1.2
192.168.1.3

如果您遇到相同的文本格式异常,并且您的IP地址格式正确,这可以解决您的问题。对不起,我迟到了2年,我偶然发现了谷歌搜索dns.reversename.from_address()。如果您的IP列表格式不正确,您可以使用类似ippy的内容来过滤掉您的不良内容。