套接字.gethostname()返回错误的主机名称

2024-06-07 11:07:47 发布

您现在位置:Python中文网/ 问答频道 /正文

当我设置MacBookPro时,我把主机名改成了我的名字Tristan。我试着用插座打电话:

socket.gethostbyname(socket.gethostname())

它没有给我错误socket.gaierror: [Errno 8] nodename nor servname provided, or not known

我想这是个问题,因为我改了名字。如果我键入:

^{pr2}$

它实际上打印出正确的ip地址。我朋友的Mac没有更改主机名,它会返回她所在网络的地址。如何将主机名改回本地主机名或执行任何操作,以便:

socket.gethostbyname(socket.gethostname())

再工作?当时我还以为改名是为了好玩,但现在我后悔不已。在


Tags: 地址错误socket名字插座主机名norgethostbyname
1条回答
网友
1楼 · 发布于 2024-06-07 11:07:47

gethostname通常只报告/etc/hostname或其等价物中包含的内容,这可能只是一个虚构的名称。gethostbyname试图解析该名称,除非它也在/etc/hosts之类的东西中,某些系统设置为与之匹配,并且配置的DNS服务器无法解析该名称,否则您将收到一个错误。在

因此,您可以尝试修复/etc/hosts中的名称(如果它是旧名称下的第一个名称),或者忽略它,直接使用主机名。在

记住,除非您的公共和私有IP匹配,否则DNS结果无论如何都是无用的。您可能想要的是点击Ipify这样的服务来确定您实际的外部IP是什么。在

相关问题 更多 >

    热门问题