偶然发现 PHP 中使用 GeoIP PECL 扩展查询 IPv6 的 IP 地址归属时,会返回空结果。
确认安装了 IPv6 的 GeoIP 数据库。本来以为是数据库里没有这个 IP,可是这 命中率 也太高了。后来发现,原来geoip_country_code_by_name()
虽然理论上是支持 IPv6 的,但是至少在我的 Archlinux 环境中,不知道是不是打包的原因,是需要使用geoip_country_code_by_name_v6()
函数才能查询 IPv6 IP 的。估计其他 GeoIP 相关的函数都是这样的。