socket.getfqdn()
,结果没问题,返回sjs_88_78 然后
socket.gethostbyname('sjs_88_78')
它将socket.gaierror:[Errno -2]名称或服务未知 它是env问题吗?如何解决?
BTW,我在Red Hat Enterprise Linux Server 6.6(圣地亚哥)上运行
答案 0 :(得分:0)
第二个命令中名称中是否可能存在错误的字符?
gaierror代表" getadressinfo错误"。在我的主机名中有一些错误的字符的情况下,我看到了这个错误。在我的情况下,这是一个额外的空间,我错误地复制和粘贴... 不确定它也是你的情况......但仅仅是为了获取信息。
此外,如果一个看不见的返回角色可能引发这种情况,那就很有趣了。像Unix和Windows之间的区别返回字符...
答案 1 :(得分:0)
可能是您没有在服务器上设置正确的地址到主机映射。从Python套接字文档:
"如果您想知道当前机器的IP地址,可能需要使用gethostbyname(gethostname())。此操作假定主机存在有效的地址到主机映射,并且假设并不总是成立。"
https://docs.python.org/2/library/socket.html#socket.gethostname