尝试使用python获取主机名时失败

时间:2016-07-25 09:03:44

标签: python-2.7

socket.getfqdn() 

,结果没问题,返回sjs_88_78 然后

socket.gethostbyname('sjs_88_78')

它将socket.gaierror:[Errno -2]名称或服务未知 它是env问题吗?如何解决?

BTW,我在Red Hat Enterprise Linux Server 6.6(圣地亚哥)上运行

2 个答案:

答案 0 :(得分:0)

第二个命令中名称中是否可能存在错误的字符?

gaierror代表" getadressinfo错误"。在我的主机名中有一些错误的字符的情况下,我看到了这个错误。在我的情况下,这是一个额外的空间,我错误地复制和粘贴... 不确定它也是你的情况......但仅仅是为了获取信息。

此外,如果一个看不见的返回角色可能引发这种情况,那就很有趣了。像Unix和Windows之间的区别返回字符...

答案 1 :(得分:0)

可能是您没有在服务器上设置正确的地址到主机映射。从Python套接字文档:

"如果您想知道当前机器的IP地址,可能需要使用gethostbyname(gethostname())。此操作假定主机存在有效的地址到主机映射,并且假设并不总是成立。"

https://docs.python.org/2/library/socket.html#socket.gethostname