python - 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
解决方案
这可能与网络设置有关。主机名解析通常由 DNS 以太网协议或主机文件完成,并比较您的网络设置(ipconfig /ALL)
nslookup ip
在终端中检查系统命令的结果。
推荐阅读
- python - 在 Lambda 层中使用 VGG preprocess_input 以及 Dense 和 keras.backend.clear_session() 时出现 KERAS 错误
- javascript - 在 Nodejs OAuth2 上与谷歌注册时出现异步等待错误
- python - 在不同光量下检测颜色斑点中心的可靠方法?
- javascript - PayPal Checkout 订阅按钮只显示两种支付方式,enableFunding 无效
- javascript - 在 JS 中使用伪元素
- ios - Swift 包管理器 - 在包的故事板中设置自定义类失败
- sql - 根据另一列值选择一列中的查询最小值和最大值
- c++ - 为什么 (0 < 5 < 2) 在 C++ 中结果为真?
- android - 根据给定的参数播放不同的音频文件
- python - 从列表中计算条件概率