socket.gethostbyaddr给出不同的回报

时间:2015-07-14 15:32:23

标签: python python-2.7

我正在使用Python 2.7.9,在尝试使用socket.gethostbyaddr时,我发现了一些令人困惑的行为。

我的本​​地计算机有公共IP,比方说111.111.111.111。如果我在远程计算机上使用:

import socket
socket.gethostbyaddr('111.111.111.111')[0]

我得到'mycomputer.com'。但是,在我的本地计算机上使用相同的命令(或使用127.0.0.1而不是我的公共IP),我得到'MYCOMPUTER.com'。为什么资本化存在差异?

1 个答案:

答案 0 :(得分:2)

gethostbyaddr还将在Linux上查询hosts文件 - /etc/hosts; Windows具有等效的%SystemRoot%\ System32 \ drivers \ etc \ hosts(位置可能因Windows的旧版本而异)

从远程计算机,gethostbyaddr将进行DNS查找并获取mycomputer.com。在本地计算机上,它可能从您的hosts文件中获得答案,该文件包含主机名的大写版本。