socket.gethostbyaddr()在某些电脑上返回错误而其他电脑没有

0 投票
1 回答
1102 浏览
提问于 2025-04-18 04:33

我查找了很多相关的讨论,但经过仔细搜索后,还是没能找到能解答我问题的内容。我在用Python,想通过socket.gethostbyaddr("这里填ip")来确定本地网络中某个IP地址的主机名:

import socket

def gethostname(ip):
    hostname = socket.gethostbyaddr(ip)

    return hostname

对于一些电脑(比如服务器),这个方法会返回主机名、别名和其他IP地址的三元组,但对于其他电脑却没有返回。相反,我得到了以下错误信息:

socket.herror: [Errno 4] No address associated with name

这个错误到底是什么意思呢?是什么原因导致的?目标电脑上需要运行什么服务或程序才能让这个方法正常工作吗?我想获取主机名的那些电脑都是运行Debian系统的。

如果这个问题已经有人问过,那我很抱歉,但我找不到相关的内容。

如果这个问题和反向DNS查询有关,我该怎么解决呢?

1 个回答

2

这句话的意思就是,没什么地址和它关联。并不是所有的IP地址都有一个可以反向查找的地址。

撰写回答