【发布时间】:2013-07-06 06:53:43
【问题描述】:
Maxmind 提供免费的 ipv6 可下载 csv。他们提供 ip range 块,但有谁知道我如何才能让某人 ipv6 ip 并在他们提供的块内进行检查?
这是一个 csv 条目的示例。我相信标题如下:
开始IP,结束IP,开始IP块,结束IP块,...
“2001:200::”、“2001:200:ffff:ffff:ffff:ffff:ffff:ffff”、“42540528726795050063891204319802818560”、“425405288060232125781257815541913346768895”、“日本”
【问题讨论】:
-
我不理解您的问题:什么是“在他们提供的块内进行检查”。您是否只想知道 IP 地址是否属于其中一个块?如果是这样,那么您有起始 IP 地址和结束 IP 地址,因此测试某个 IP 地址是否在这些界限之间很简单!
-
对于 maxmind ipv4 db,我可以使用 mysql inet_aton 将 ip 转换为数字格式。然后我可以使用这个值来查看它是否在特定范围内。我想知道 ipv6 的等价物...
-
如果你在谈论 MySQL,那么没有等价物,因为 MySQL 没有足够大的整数类型来容纳 IPv6 地址(它的最大整数类型是 64 位)。所以你必须自己动手。您可以将 IPv6 地址存储为文本或两个 64 位整数(低位和高位)。
-
由于 LIR 分配的 IPv6 永远不应小于 /64,因此您应该可以使用 64 位整数。