【发布时间】:2013-10-23 08:59:06
【问题描述】:
我一直在尝试将所有 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 获取国家/地区位置?注意:不想依赖任何在线服务!!
【问题讨论】: