在 PowerDNS Lua 中,用户的 IP 地址作为一个变量bestwho存在。不过如果用户的 DNS 服务器没有告知上游服务器用户的地址,那么bestwho就会指向 DNS 服务器的地址。 PowerDNS 提供了一个 lua 函数pickclosest,该函数从一个 IP 列表中选择离bestwho地理位置最近的服务器返回。 还有一个函数country,可以分辨国家。 两者的使用:
1 2
A "pickclosest({'1.1.1.1','8.8.8.8','114.114.114.114','223.5.5.5'})" A ";if(country('CN')) then return '223.5.5.5' else return '1.1.1.1' end"