只是标题,它们之间有什么区别?在python中,socket.gethostbyname(socket.gethostname())并socket.gethostbyname(socket.getfqdn())在我的计算机上返回不同的结果.
从文档,
socket.gethostname 返回一个字符串,其中包含Python解释器当前正在执行的机器的主机名.
socket.getfqdn如果可用,gethostname则返回完全限定的域名.
完全限定域名是一个域名,用于指定其在DNS树层次结构中的确切位置.来自维基百科的例子:
例如,给定具有本地主机名myhost和父域名example.com的设备,完全限定的域名为myhost.example.com.
小智 5
请注意,上面选定的回复相当混乱。
YESsocket.getfqdn将返回完全限定的主机名。但如果它是“localhost.localdomain”,您可能实际上想要socket.gethostname改为这样,这样您就可以得到一些有用的东西。
区别在于,一个读取/etc/hostname和 ,/etc/domainname而另一个读取内核节点名。根据您的发行版、配置、操作系统等,您的里程会有所不同。
这意味着您通常要首先检查socket.getfqdn并验证它是否返回“localhost.localdomain”。如果是,请socket.gethostname改用。
最后,python 也有与 pythonplatform.node基本相同的功能socket.gethostname,尽管这对于多平台代码来说可能是更好的选择。
这是一个非常重要的细节。
| 归档时间: |
|
| 查看次数: |
6974 次 |
| 最近记录: |