有没有办法获得不同地区的 DNS 解析结果?

2020-05-30 09:07:38 +08:00
 LUREN

假如一个网站使用了 CDN,它有多个地区节点。在国内解析获得的是美国 IP,在香港解析获得的是香港 IP 。

在没有香港服务器的情况下,有没有办法可以查询到香港地区的解析 IP 呢?

手动查询可以用 https://ping.chinaz.com/ 这类网站,但我需要在 shell 脚本里自动查询。

请问有没有一些在线 ping 网站的 api 可以使用或者其它办法可以解决这个问题?找了一圈都没有发现。。

2780 次点击
所在节点    问与答
13 条回复
3CH0
2020-05-30 09:52:45 +08:00
dig @223.5.5.5 www.aliyun.com +subnet=47.75.18.0
reus
2020-05-30 09:53:43 +08:00
查询当地的 DNS 服务器,有些基于 https 也会有地域参数
haimall
2020-05-30 09:57:08 +08:00
haimall
2020-05-30 09:58:07 +08:00
@haimall 无视我把,只看了标题
ddefewfewf
2020-05-30 09:58:31 +08:00
dnsmasq
Jerami
2020-05-30 10:20:36 +08:00
whatismydns
LUREN
2020-05-30 11:24:07 +08:00
@3CH0 感谢!测试有效。不过 +subnet 指定查询位置似乎不总是有效,是需要取决 dns 服务器支持吗?测试 8.8.8.8 和 1.1.1.1 不起作用,223.5.5.5 存在污染问题,有其它 dns 推荐吗?
LUREN
2020-05-30 11:24:40 +08:00
@reus 请问有香港 dns 推荐吗?
napsterwu
2020-05-30 12:10:37 +08:00
napsterwu
2020-05-30 12:11:11 +08:00
没看到要脚本,忽略我吧
Showfom
2020-05-30 12:58:04 +08:00
dig + 一台支持 ECS 的递归 DNS 服务器即可,公共服务的话国内 223.5.5.5 国外 8.8.8.8

你还要解决污染,又要在国内做,那就自己搭建去呗
Livid
2020-05-30 13:00:23 +08:00
https://developers.google.com/speed/public-dns/docs/doh/json

用 DNS-over-HTTPS 的 JSON API,里面有 edns_client_subnet 支持。
LUREN
2020-05-30 16:17:34 +08:00
@Livid
curl -i 'https://dns.google/resolve?name=a356.w10.akamai.net&type=a&do=1&edns_client_subnet=63.223.17.0/24'
测试与 dig +subnet= 参数一样,虽然指定了一个香港子网,但没有解析没有返回香港 IP 。似乎还是取决 dns 服务器行为,换了一个香港 dns 就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX