我有一个从Maxmind下载的CSV文件,其中包含IPv6数据。我需要将其上传到MySql表,然后使用此表通过IPv6检测国家/地区。
所以第一个问题是MySql类型应该是我的MySQL表中的LONGSTART
和LONGEND
字段,因为我有42540488558116655331872044393019998208
数字时最大INTEGER长度可以是20?
另一个问题是如何构建MySql查询以便在LONGSTART
和LONGEND
之间找到IP地址?我使用一个函数(ipv6_numeric($ip)
)将'2001::11ff:ffff:f'
IPv6地址转换为像2540488558116655331872044393019998208
这样的长数字。
谢谢你提前!
您可以使用以下简单的SQL查询。
SELECT * FROM `geoip2`
WHERE [SEARCH IP NO] <= LONGEND LIMIT 1