首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gethostname和getfqdn有什么区别?

问gethostname和getfqdn有什么区别?
EN

Stack Overflow用户
提问于 2012-12-18 19:26:09
回答 3查看 9.7K关注 0票数 7

仅仅是标题,它们之间有什么区别?在python中,socket.gethostbyname(socket.gethostname())和socket.gethostbyname(socket.getfqdn())在我的电脑上返回不同的结果。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-18 19:33:42

从文档中,

socket.gethostname返回一个字符串,其中包含当前正在执行Python解释器的机器的主机名。

如果可用,socket.getfqdn将返回完全限定的域名,否则将返回gethostname。

完全限定域名是指定其在DNS树层次结构中的确切位置的域名。来自维基百科的例子:

例如,假设设备的本地主机名为

,父域名为example.com,则完全限定的域名为myhost.example.com.

票数 7
EN

Stack Overflow用户

发布于 2017-04-11 02:14:49

请注意,上面选择的回复是相当令人困惑的。

是的,socket.getfqdn将返回完全限定的主机名。但是如果它是'localhost.localdomain‘,你可能实际上想要socket.gethostname,这样你就能得到一些有用的东西。

不同之处在于一个读取/etc/hostname和/etc/domainname,而另一个读取内核节点名。根据您的发行版、配置、操作系统等的不同,您的里程会有所不同。

这意味着您通常希望首先检查socket.getfqdn,并验证它是否返回'localhost.localdomain‘。如果是这样,请改用socket.gethostname。

最后,python还具有与python上的socket.gethostname基本相同的platform.node,尽管这对于多平台代码来说可能是更好的选择。

这是一个相当重要的细节。

票数 4
EN

Stack Overflow用户

发布于 2012-12-18 19:28:39

主机名不是完全限定的域名,因此它们返回不同的结果。

getfqdn()将返回完全限定域名,而gethostname()将返回主机名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13931924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档