名称或服务未知

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了名称或服务未知相关的知识,希望对你有一定的参考价值。

我一直试图使用下面的代码获取登录机器的人的IP地址但我收到错误。

>>> import socket
>>> socket.gethostbyname_ex(socket.gethostname())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.gaierror: [Errno -2] Name or service not known

相同的代码适用于其他Linux机箱。不确定我修复它。

答案

由于未正确设置主机名而发生错误。在三个不同的地方设置主机名,这些地方在 -

  1. 在/ etc /主机名
  2. / etc / hosts文件
  3. 运行命令$ hostname

然后注销并再次登录。你完成了。

另一答案

检查socket.gethostname()返回的内容,看看你是否可以ping它。基本上这是查找失败。检查你的/etc/hosts,看看它是否列出。我知道这看起来很奇怪,但我认为如果返回的主机名没有条目,你会得到一个名称服务失败,就是这样。

另一答案

如果您使用的是IPv6或具有多个网络接口的服务器,则此命令将无法正常运行。

相反,您可以使用此命令尝试在端口53处以8.8.8.8连接到Google DNS服务器,并返回您的IP:

import socket
print([(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])

以上是关于名称或服务未知的主要内容,如果未能解决你的问题,请参考以下文章

socket.gaierror: [Errno -2] 名称或服务未知| Python

名称或服务未知

Python 3 ftplib错误“名称或服务未知”

JWTRefreshTokenBundle:名称或服务未知

解决:ping: www.baidu.com: 未知的名称或服务

Ubuntu ssh:无法解析主机名 myserver:名称或服务未知