【问题标题】:why socket.gethostbyname(socket.getfqdn()) and socket.gethostbyname(socket.gethostname()) return differently?为什么 socket.gethostbyname(socket.getfqdn()) 和 socket.gethostbyname(socket.gethostname()) 返回不同?
【发布时间】:2012-12-19 07:06:33
【问题描述】:

我知道什么是 fqdn 和主机名。但是我还是不明白为什么这两个 sn-ps 返回不同的结果。
socket.gethostbyname(socket.gethostname()) 返回一个 IP 地址,它实际上是我在 Windows 上使用 ipconfig 命令看到的以太网适配器 IP 地址。但是socket.gethostbyname(socket.getfqdn()) 返回一个我在 ipconfig 显示中看不到的 ip 地址,既不是以太网也不是 ppp。它是什么?
gethostname 的结果是相对于我的本地网络的 ip 地址,而 getfqdn 是相对于整个网络的结果吗?
如果我在远程网络中并且想要连接我的计算机或者我与我的计算机在同一个网络中,我应该使用两者中的哪一个?
实际上,当我离线尝试这两个 sn-ps 时,它们都返回 127.0.0.1。

【问题讨论】:

    标签: sockets networking


    【解决方案1】:

    当您离线执行这些命令时,您会得到 127.0.0.1,因为在您的 /etc/hosts 中,默认映射是:127.0.0.1 localhost。所以,你的 gethostname() 被解析为本地主机,gethostbyname() 是 127.0.0.1。

    我相信,gethostbyname() 会分别为 getfqdn() 和 gethostname() 返回父域名的 IP 或完全限定域名的 IP。它可能不同,也可能不同。

    【讨论】:

      猜你喜欢
      • 2020-06-27
      • 2019-10-19
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      相关资源
      最近更新 更多