我正在使用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'
。为什么资本化存在差异?
答案 0 :(得分:2)
gethostbyaddr
还将在Linux上查询hosts文件 - /etc/hosts
; Windows具有等效的%SystemRoot%\ System32 \ drivers \ etc \ hosts(位置可能因Windows的旧版本而异)
从远程计算机,gethostbyaddr
将进行DNS查找并获取mycomputer.com。在本地计算机上,它可能从您的hosts文件中获得答案,该文件包含主机名的大写版本。