我正在尝试在dnspython中查询反向查找。不幸的是,from_address()函数不允许我通过变量传递IP。你知道为什么吗?
#!/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])我是python的新手,如果有人能帮上忙,那就太好了!
发布于 2017-08-17 01:14:30
我真的怀疑你还在做这个工作,但是如果你打印出每个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地址格式正确,这应该可以解决您的问题。抱歉,我来晚了两年,我偶然发现了这个谷歌dns.reversename.from_address()。如果你的is列表格式不好,你可以使用像ippy这样的东西来过滤掉你的坏is。
https://stackoverflow.com/questions/30427952
复制相似问题