获取与URL、Python关联的所有IP
我正在尝试查找与URL关联的所有IP。我一直在使用软件包“socket”,但我对不同功能返回的IP数量不一感到困惑。例如,见下文。是否有返回所有IP的功能获取与URL、Python关联的所有IP,python,Python,我正在尝试查找与URL关联的所有IP。我一直在使用软件包“socket”,但我对不同功能返回的IP数量不一感到困惑。例如,见下文。是否有返回所有IP的功能 socket.gethostbyname('google.com') #returns 1 ip socket.gethostbyname_ex('google.com') #returns 6 ips socket.getaddrinfo('google.com', 80) #returns 12 ips 是否有返回所有IP的功能?否
socket.gethostbyname('google.com')
#returns 1 ip
socket.gethostbyname_ex('google.com')
#returns 6 ips
socket.getaddrinfo('google.com', 80)
#returns 12 ips
是否有返回所有IP的功能?否,没有返回“所有”IP的功能。您看到的IP地址是您的本地DNS服务器知道的
google.com
。这些地址因地点而异
socket.gethostbyname('google.com')
#returns 1 ip
socket.gethostbyname_ex('google.com')
#returns 6 ips
socket.getaddrinfo('google.com', 80)
#returns 12 ips
出于某种原因,所有方法的行为都不同
返回此主机的A记录中的1个IPv4地址。这是为了“让我们只连接gethostbyname
上的任何地址”google.com
返回所有已知的IPv4地址;也就是说,gethostbyname\u ex
记录中的所有地址。这适用于需要高可用性的情况,因此您可以尝试连接其中几个IPv4地址,然后继续成功的连接google.com
- 由于上述两个地址都不支持IPv6地址,
也会返回它们。除非您还提供参数socket.getaddrinfo
,否则您将有一些额外的协议,例如相同的地址重复3次-例如TCP、UDP和原始套接字proto=socket.IPPROTO_TCP
在这3个IP地址中,
socket.getaddrinfo
提供了“大部分”IP地址,但由于DNS的分布式特性,尤其是google的DNS,您无法获取所有IP地址。不,没有返回“全部”IP的功能。您看到的IP地址是您的本地DNS服务器知道的google.com
。这些地址因地点而异
出于某种原因,所有方法的行为都不同
返回此主机的A记录中的1个IPv4地址。这是为了“让我们只连接gethostbyname
上的任何地址”google.com
返回所有已知的IPv4地址;也就是说,gethostbyname\u ex
记录中的所有地址。这适用于需要高可用性的情况,因此您可以尝试连接其中几个IPv4地址,然后继续成功的连接google.com
- 由于上述两个地址都不支持IPv6地址,
也会返回它们。除非您还提供参数socket.getaddrinfo
,否则您将有一些额外的协议,例如相同的地址重复3次-例如TCP、UDP和原始套接字proto=socket.IPPROTO_TCP
其中,
socket.getaddrinfo
提供了“大部分”的IP地址,但由于DNS的分布式特性,尤其是google的DNS,您无法获得所有IP地址。您需要查看DNS库,而不是套接字库。您可能需要查看DNS库,而不是套接字库。差不多