Python - IP 到主机名脚本

标签 python python-2.7

我创建了一个脚本来将 IP 解析为主机名。该脚本无法解析主机名,它给出以下错误:

无法解析主机名:10.10.10.10 [Errno 11004] getaddrinfo 失败 无法解析主机名:10.10.10.10 [Errno 11004] getaddrinfo 失败

请提出建议。我是 python 新手。该文本文件包含超过 1000 个 IP。

#!/usr/bin/python
import socket
pfile = open ('C:\\Python27\\scripts\\test.txt')
while True:
    IP = pfile.readline()
    if not IP:
        break
    try:
        host = socket.gethostbyaddr("IP")
        print host, IP
    except socket.gaierror, err:
        print "cannot resolve hostname: ", IP, err
pfile.close()

最佳答案

这里有两个问题。

首先,正如 FatalError 指出的那样,您查找的不是 IP 变量的值,而是字符串 "IP"

其次,pfile.readline() 将在 IP 字符串末尾留下一个尾随换行符,因此它仍然会失败。

所以:

host = socket.gethostbyaddr(IP.rstrip())

此外,在某些平台上,如果您的 DNS 无法正常工作,即使提供了 IP 地址,gethostbyaddr 也会失败。因此,您可能需要在运行脚本的计算机上进行简单的测试(如果它与您已经用于 SO 的计算机不同),例如,打开浏览器并访问 Google。

关于Python - IP 到主机名脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037376/

相关文章:

python - 如何返回第一个有效路径?

python - Keras 回调实例没有属性 'set_model'

python - 从 $pythonpath 中删除 python 模块

python - 测试文件的不同 Pylint 标准

python - 在 Mountain Lion OS X 上安装 Python igraph 时出现问题

python - 在wxpython中将变量从一个类传递到另一个类

python - 为每个单词添加链接,考虑标点符号、缩写和 Unicode

python - App Engine : 13 StringPropertys vs. 1 StringListProperty(w.r.t. 索引/存储和查询性能)

python - 计算 TSV 文件中所有其他点之间的距离?

python - 如何在 Pandas 数据框行中找到最后一个集群?