假如一个网站使用了 CDN,它有多个地区节点。在国内解析获得的是美国 IP,在香港解析获得的是香港 IP 。
在没有香港服务器的情况下,有没有办法可以查询到香港地区的解析 IP 呢?
手动查询可以用 https://ping.chinaz.com/ 这类网站,但我需要在 shell 脚本里自动查询。
请问有没有一些在线 ping 网站的 api 可以使用或者其它办法可以解决这个问题?找了一圈都没有发现。。
1
3CH0 2020-05-30 09:52:45 +08:00
dig @223.5.5.5 www.aliyun.com +subnet=47.75.18.0
|
2
reus 2020-05-30 09:53:43 +08:00
查询当地的 DNS 服务器,有些基于 https 也会有地域参数
|
3
haimall 2020-05-30 09:57:08 +08:00 via Android
|
5
ddefewfewf 2020-05-30 09:58:31 +08:00
dnsmasq
|
6
Jerami 2020-05-30 10:20:36 +08:00 via Android
whatismydns
|
7
LUREN OP @3CH0 感谢!测试有效。不过 +subnet 指定查询位置似乎不总是有效,是需要取决 dns 服务器支持吗?测试 8.8.8.8 和 1.1.1.1 不起作用,223.5.5.5 存在污染问题,有其它 dns 推荐吗?
|
9
napsterwu 2020-05-30 12:10:37 +08:00
|
10
napsterwu 2020-05-30 12:11:11 +08:00
没看到要脚本,忽略我吧
|
11
Showfom 2020-05-30 12:58:04 +08:00
dig + 一台支持 ECS 的递归 DNS 服务器即可,公共服务的话国内 223.5.5.5 国外 8.8.8.8
你还要解决污染,又要在国内做,那就自己搭建去呗 |
12
Livid MOD https://developers.google.com/speed/public-dns/docs/doh/json
用 DNS-over-HTTPS 的 JSON API,里面有 edns_client_subnet 支持。 |
13
LUREN OP @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 就可以了。 |