增加 getaddrinfo 返回的 IP 地址数量

问题描述 投票:0回答:1

我使用

getaddrinfo
返回 URL 输入的 IP 地址。

目前返回 8x IP 地址,但我相信还有更多。

如果我再次调用它,它只会返回完全相同的地址。

有没有办法增加IP数量

getaddrinfo
回报?

操作系统:Ubuntu

c linux dns network-programming ip
1个回答
0
投票

我不知道单次调用

getaddrinfo
产生的 IP 地址数量有任何上限。如果您获得 8 个地址,那么 8 个地址就是 DNS 响应中的数量。

如果您每次使用相同主机名调用

getaddrinfo
时获得不同的 IP 地址,则该服务正在执行 DNS 循环负载平衡,您可以多次调用
getaddrinfo
来尝试枚举所有可用地址。因为 DNS 缓存在整个网络的许多地方,所以您需要间隔您的请求:我会下降到较低级别的 DNS 特定 API(例如 c-ares),联系相关 DNS 的权威服务器直接区域,并以每分钟一次或服务器声明的响应生存时间的每 150% 一次的速率发出查询,以较慢者为准。是的,这可能需要几个小时。

如果您每次使用相同的主机名调用 getaddrinfo 时都获得相同的

 IP 地址,但公共 DNS 查询服务(如 
nslookup.io
digwebinterface.com
)为您提供该主机名的不同地址,则该服务正在执行 
DNS基于地理负载平衡并且没有实用的方法来枚举主机名的所有地址。

请注意,有多种方法可以在单个

IP地址后面托管多个服务器,例如反向代理IP任播;仅仅因为您拥有可以找到的所有地址,并不意味着您有能力联系所有可用的服务器。

© www.soinside.com 2019 - 2024. All rights reserved.