我想检查给定网站(例如 google.ch)的完整 IP 列表。运行 dig 始终返回相同的 IP:
dig google.ch
google.ch. 136 IN A 172.217.168.67
但是在运行https://toolbox.googleapps.com/apps/dig/等在线服务时,我可以看到连续调用返回不同的 IP 地址。
另外,https://www.robtex.com/dns-lookup/google.ch告诉我这个域名似乎有 28 个 IP。
我是否也可以通过 dig 或类似工具获取此信息,或者这是我无法控制的?
谢谢
这是你无法控制的。如果您同时从 Internet 上的多个点进行 DNS 查询,您可能可以“模拟”该功能,然后考虑所有结果的联合。它仍然是非常近似的。
为什么?
因为 DNS 服务器可以自由选择它想要给你答案的任何算法。例如,如果涉及负载平衡器和 CDN,您可能会在每次查询时获得不同的 IP 地址,实际上是出于“GeoDNS”或其他原因。或多个地址作为单个查询的答案。这可能取决于查询的来源:DNS 服务器看到递归 DNS 服务器的 IP 地址或执行请求的 DNS 客户端,有时还有其他信息(客户端有一个 EDNS 选项可以添加子网 IP 进行编码执行请求的真实客户端,以便 DNS 服务器理论上可以提供更合适的回复;但出于隐私原因,这可能不会经常使用)。
即使纯粹在 DNS 级别,您也至少有两个级别的可能可变性:
@
这意味着您使用本地定义的递归名称服务器,这意味着您实际上可以获得任何结果,因为它不是权威的;当然还有任何严肃的讨论在某些时候需要涉及 DNSSEC)可以任播:因此您甚至可能并不总是到达同一个节点,并且取决于提供商,节点的缓存可能会共享或不共享,因此您可以获得完全不同的回复只是基于案子此外,最后,更重要的是,您为什么需要这些数据?如果您指定更多约束/用例,可能还有其他方法可以实现您的需求。如果您仍然认为它在所有通用情况下,您为什么认为您需要知道
google.ch
例如“所有”IP 地址?即使你做到了,你为什么认为它是相关的,因为所有者可以随时改变这一切?因为出于某些特定原因,有时提供商会列出相关的 IP 地址。例如,监控服务提供商或搜索引擎可以列出他们使用的 IP 地址,这样您就可以确保不会阻止他们。但这只是网站上的一些典型文档,没有任何动态,也与作为协议的 DNS 非常相关。
PS:不要忘记 IPv4 是传统互联网;你现在应该专注于 IPv6 :-)