Python 3.x 为什么在使用AWS完全限定域名时getaddrinfo因socket.gaierror而失败?
我选择了一个使用Python3的项目 在我创建了一台AWS机器来进行更多的单元测试之前,一切都很正常。 代码中有一部分根据主机名和IP地址执行某些逻辑Python 3.x 为什么在使用AWS完全限定域名时getaddrinfo因socket.gaierror而失败?,python-3.x,Python 3.x,我选择了一个使用Python3的项目 在我创建了一台AWS机器来进行更多的单元测试之前,一切都很正常。 代码中有一部分根据主机名和IP地址执行某些逻辑 在AWS计算机上,它抛出以下错误:[Errno 11001]getaddrinfo失败 这在其他机器上也可以,但在这个AWS VM中,它会出错,无法实现代码中的2.2部分: (h\u名称、别名、ip地址)=socket.gethostbyname\u ex(fqdn\u名称) 通常AWSfqdn看起来像这样ec2amaz-1mcm2p3.us-e
在AWS计算机上,它抛出以下错误:
[Errno 11001]getaddrinfo失败
这在其他机器上也可以,但在这个AWS VM中,它会出错,无法实现代码中的2.2部分:(h\u名称、别名、ip地址)=socket.gethostbyname\u ex(fqdn\u名称)
通常AWSfqdn
看起来像这样ec2amaz-1mcm2p3.us-east-2.compute.internal
result = []
# 1.1 push hostname into the result list
h_name = socket.gethostname()
result.append(str(h_name).lower())
# 1.2 push IPs into the result list
(h_name, aliases, ip_addresses) = socket.gethostbyname_ex(h_name)
if ip_addresses:
for ip in ip_addresses:
if not ip in result:
result.append(str(ip).lower())
# 2.1 push fqdn (fully qualified domain name) into the result list
fqdn = socket.getfqdn()
if not fqdn in result:
result.append(str(fqdn).lower())
# 2.2 push fqdn IPs into the result list
# ***************** ERROR IN BELOW LINE ******************
(h_name, aliases, ip_addresses) = socket.gethostbyname_ex(fqdn)
if ip_addresses:
for ip in ip_addresses:
if not ip in result:
result.append(str(ip))