我知道什么是fqdn和hostname。但是我仍然不明白为什么这两个代码片段返回不同的结果。
socket.gethostbyname(socket.gethostname())返回的ip地址实际上是我在Windows上使用ipconfig命令看到的以太网适配器ip地址。但是socket.gethostbyname(socket.getfqdn())返回了一个我在ipconfig显示中看不到的ip地址,既不是以太网也不是ppp。那是什么?
gethostname的结果是相对于本地网络的ip地址和相对于整个网络的getfqdn吗?
如果我在远程网络中并且想要连接我的计算机,或者我与我的计算机在同一网络中,我应该使用这两种方法中的哪一种?
实际上,当我离线尝试这两个代码片段时,它们都返回127.0.0.1。
发布于 2013-07-13 05:34:31
当您脱机执行这些命令时,会得到127.0.0.1,因为在/etc/hosts中,缺省映射是: 127.0.0.1 localhost。因此,您的主机解析为localhost,而gethostbyname()为127.0.0.1。
我相信,gethostbyname()会分别为getfqdn()和gethostname()返回父域名的IP或完全限定域名的IP。它可能是不同的,也可能不是。
https://stackoverflow.com/questions/13947178
复制相似问题