我一直在尝试将所有 IP 地址(IPv4 和 IPv6)转换为十进制格式(IP 号),将这些数字存储在已经包含 IP 范围的数据库中,并根据用户的 IP 获取国家/地区位置。虽然这对于 IPv4 地址可以轻松完成,但在涉及 IPv6 地址时我遇到了障碍。
说闲置的IP应该转换为十进制 2a03:29ff:ffff:ffff:ffff:ffff:ffff:ffff
我通过一些在线服务(将 IPv6 转换为十进制)对其进行了测试,只是为了检查一致性,即我的最终结果应该是什么样子。
https://www.ultratools.com/tools/decimalCalc
http://www.ipaddressguide.com/ipv6-to-decimal
都返回相同的数字 - 55844004574745424515003293805316145151
现在在我的coldfusion代码中,我首先删除:从IP获取十六进制格式,然后尝试将其转换为十进制
<cfset ipv6='2a0329ffffffffffffffffffffffffff'>
<cfoutput>#inputBaseN(ipv6, 16)#</cfoutput>
导致错误消息
有可能做到这一点吗?您如何看待我处理此类事情的方法?有没有更好的方法来根据 IP 获取国家/地区位置?注意:不想依赖任何在线服务!!