当我设置MacBookPro时,我把主机名改成了我的名字Tristan
。我试着用插座打电话:
socket.gethostbyname(socket.gethostname())
它没有给我错误socket.gaierror: [Errno 8] nodename nor servname provided, or not known
我想这是个问题,因为我改了名字。如果我键入:
^{pr2}$它实际上打印出正确的ip地址。我朋友的Mac没有更改主机名,它会返回她所在网络的地址。如何将主机名改回本地主机名或执行任何操作,以便:
socket.gethostbyname(socket.gethostname())
再工作?当时我还以为改名是为了好玩,但现在我后悔不已。在
gethostname
通常只报告/etc/hostname
或其等价物中包含的内容,这可能只是一个虚构的名称。gethostbyname
试图解析该名称,除非它也在/etc/hosts
之类的东西中,某些系统设置为与之匹配,并且配置的DNS服务器无法解析该名称,否则您将收到一个错误。在因此,您可以尝试修复
/etc/hosts
中的名称(如果它是旧名称下的第一个名称),或者忽略它,直接使用主机名。在记住,除非您的公共和私有IP匹配,否则DNS结果无论如何都是无用的。您可能想要的是点击Ipify这样的服务来确定您实际的外部IP是什么。在
相关问题 更多 >
编程相关推荐