首页 > 解决方案 > Python - socket.gethostbyaddr() 在一台电脑上失败,但在另一台电脑上工作

问题描述

我有一个 Python 脚本来获取 IP 地址列表的主机名。该脚本在我从一台计算机运行时有效,但从另一台计算机运行时相同的脚本返回错误 ( [Errno 11004] host not found)。

两台计算机都是 W10 (v1809),具有相同的 Python 版本 (3.7.4),彼此相邻并连接到同一个公司网络。我什至不知道在哪里寻找潜在的差异。如果有任何提示我应该在哪里/什么,或者是否有不同的方式从 IP 获取主机名,我将不胜感激。

这是我的代码

    for ip in ipList:
        try:
            retVal = socket.gethostbyaddr(ip)
        except socket.error as serr:
            logger.debug('IP2Host for {} failed with Error {}'.format(ip, serr))
            retVal = 'FAILED'
        return retVal

标签: pythonpython-3.xsockets

解决方案


这可能与网络设置有关。主机名解析通常由 DNS 以太网协议或主机文件完成,并比较您的网络设置(ipconfig /ALL)

nslookup ip在终端中检查系统命令的结果。


推荐阅读