当我设置我的Macbook Pro时,我改变了我的主机名,我想我的名字为Tristan
。我正在尝试使用套接字并致电:
socket.gethostbyname(socket.gethostname())
它没有给我错误socket.gaierror: [Errno 8] nodename nor servname provided, or not known
我认为这是一个问题,因为我更改了名称。如果我输入:
socket.gethostname('Tristan.local')
它实际上打印出正确的IP地址。我朋友的Mac没有更改主机名,它返回了她所在网络的地址。如何将主机名更改回本地主机名或我需要做的任何事情,以便:
socket.gethostbyname(socket.gethostname())
再次工作?我认为当时把它改成我的名字当时很有趣,但现在我很遗憾。
答案 0 :(得分:-1)
gethostname
通常只会报告/etc/hostname
或其中的等价物,而这可能只是一个名称。 gethostbyname
尝试解析该名称,除非它也在/etc/hosts
之类,某些系统设置为匹配,并且您的配置DNS服务器无法解析,那你得到一个错误。
因此,您可以尝试修改/etc/hosts
中的名称(如果它位于旧名称下面),或者您可以忽略该名称,并按原样使用您的主机名。
请记住,除非您的公共和私人IP与DNS结果无关,否则无效。您可能想要的是点击Ipify之类的服务来确定您的实际外部IP是什么。