Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取与URL、Python关联的所有IP_Python - Fatal编程技术网

获取与URL、Python关联的所有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的功能?否

我正在尝试查找与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的功能?

否,没有返回“所有”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
出于某种原因,所有方法的行为都不同

  • gethostbyname
    返回此主机的A记录中的1个IPv4地址。这是为了“让我们只连接
    google.com
    上的任何地址”

  • gethostbyname\u ex
    返回所有已知的IPv4地址;也就是说,
    google.com
    记录中的所有地址。这适用于需要高可用性的情况,因此您可以尝试连接其中几个IPv4地址,然后继续成功的连接

  • 由于上述两个地址都不支持IPv6地址,
    socket.getaddrinfo
    也会返回它们。除非您还提供参数
    proto=socket.IPPROTO_TCP
    ,否则您将有一些额外的协议,例如相同的地址重复3次-例如TCP、UDP和原始套接字


在这3个IP地址中,
socket.getaddrinfo
提供了“大部分”IP地址,但由于DNS的分布式特性,尤其是google的DNS,您无法获取所有IP地址。

不,没有返回“全部”IP的功能。您看到的IP地址是您的本地DNS服务器知道的
google.com
。这些地址因地点而异

出于某种原因,所有方法的行为都不同

  • gethostbyname
    返回此主机的A记录中的1个IPv4地址。这是为了“让我们只连接
    google.com
    上的任何地址”

  • gethostbyname\u ex
    返回所有已知的IPv4地址;也就是说,
    google.com
    记录中的所有地址。这适用于需要高可用性的情况,因此您可以尝试连接其中几个IPv4地址,然后继续成功的连接

  • 由于上述两个地址都不支持IPv6地址,
    socket.getaddrinfo
    也会返回它们。除非您还提供参数
    proto=socket.IPPROTO_TCP
    ,否则您将有一些额外的协议,例如相同的地址重复3次-例如TCP、UDP和原始套接字


其中,
socket.getaddrinfo
提供了“大部分”的IP地址,但由于DNS的分布式特性,尤其是google的DNS,您无法获得所有IP地址。

您需要查看DNS库,而不是套接字库。您可能需要查看DNS库,而不是套接字库。差不多