Traceback (most recent call last): File "", line 1, in AttributeError: module 'socket' has no attribute 'close'

Traceback (most recent call last): File "", line 1, in AttributeError: module 'socket' has no attribute 'close'

我需要编写一个程序来检索域名列表的 IP 地址。简单的例子可以在这里显示:

>>> import socket
>>> socket.gethostbyname('google.com')
'172.217.160.14'
>>> socket.close()

在我尝试关闭套接字后,出现此错误:

Traceback (most recent call last): File "", line 1, in AttributeError: module 'socket' has no attribute 'close'

如何关闭这个套接字?我需要关闭它,因为我的实际程序有循环,在列表中的每个域名中我需要获取其 IP,因此我需要在每次迭代中为新主机关闭套接字。

你能告诉我问题是什么吗?

您既不在此处创建套接字,也不将其绑定到任何端口。 socket.gethostbyname('google.com') 所做的是将主机名转换为 IPv4 地址格式。方法.close()对打开的连接有效。

您代码中的 socket 指的是 socket module, which has no close function. A new module level close function has been added in Python 3.7, but it requires a socket descriptor as an argument. If I get it right, you want to call the close method of socket object,而不是模块。在您的情况下,您不需要关闭任何连接。