gpt4 book ai didi

python - 获取与 URL,Python 关联的所有 IP

转载 作者:行者123 更新时间:2023-12-02 04:12:22 26 4
gpt4 key购买 nike

我正在尝试查找与 URL 关联的所有 IP。我一直在使用“套接字”包,但对不同功能返回的不同数量的 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。这些地址因地点而异。

所有方法的行为都不同,这是有原因的

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

  • gethostbyname_ex 返回所有已知的 IPv4 地址;即 google.com 的 A 记录中的所有地址。这是针对您需要高可用性的情况,因此您可以尝试连接其中几个 IPv4 地址并继续连接成功。

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

在这 3 个中,socket.getaddrinfo 给出了“最多”的 IP 地址,但是由于 DNS 的分布式特性,尤其是谷歌的 DNS,您无法获取它们 全部

关于python - 获取与 URL,Python 关联的所有 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35892868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com