首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在SQL中查询GeoLite2乡村CSV

在SQL中查询GeoLite2乡村CSV
EN

Stack Overflow用户
提问于 2014-02-25 01:04:11
回答 2查看 5.6K关注 0票数 4

有人知道如何使用SQL从MaxMind的IP4乡村CSV中查找GeoLite2地址吗?

多年来我一直在使用MaxMind的免费GeoIP数据,并且希望升级到他们的GeoLite2数据。我已经将块和位置数据加载到MySQL表中,但不确定如何确定IP4地址的地址范围。旧格式的每个块都有一个开始/结束号;新格式似乎只有一个开始号。

我已经搜索过MaxMind开发人员的文档,并在谷歌上搜索过,但似乎找不到任何关于如何查询新格式的信息。我相信这是显而易见的,如果我在这期间弄清楚了,就会编辑这篇帖子。

我想,谢谢,我必须找到第一个更大或等于IP4地址的块条目,并且可能限制1。

我将这些数据用于web应用程序外观,以及直接在SQL中查询以生成报表;因此,我通常需要确保能够在Perl代码和纯SQL中实现查找。

我正在升级,因为我看到了一些有趣的结果,日本游客似乎是来自法国的旧数据。

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-25 15:04:59

Geolite2 CSV中使用的地址格式包括一个块IP地址开始,后面跟着一个前缀长度#,该前缀长度#可以转换为块IP地址端。

(让人有些困惑的是,Maxmind正在使用"Network_Mask_Length“而不是"Prefix_Length”(公认的IPv6术语)来标记这个字段。)

Geolite2 CSV的块字段布局:

代码语言:javascript
代码运行次数:0
运行
复制
network_start_ip,network_mask_length,geoname_id,registered_country_geoname_id,re
presented_country_geoname_id,postal_code,latitude,longitude,is_anonymous_proxy,i
s_satellite_provider

示例:(从Geolite2-Country-Blocks.csv提取的记录)

代码语言:javascript
代码运行次数:0
运行
复制
::ffff:81.248.136.0,120,3578476,3017382,,,,,0,0

考虑到上面的例子,分配给块的最后一个IPv4地址是什么?

代码语言:javascript
代码运行次数:0
运行
复制
First IP address: 81.248.136.0
Prefix_Length/Network_mask_Length: 120
Last IP address: 81.248.136.255

下面的URL可能非常方便,可以快速查找(特定Prefix_Length可用的IP地址数):

calculator.cgi

__philippe

票数 3
EN

Stack Overflow用户

发布于 2014-02-27 08:43:59

Prefix_Length计算器的使用:

(在本例中,更多的是一个简单的表查找工具,而不是计算器,真的.;-)

calculator.cgi

在计算器中,勾选IPv6按钮,然后单击PL框向下箭头。将提供一个“前缀长度”列表,并提供相应的可用IP地址数。

要确定任何Geolite2块的最后一个IP入口,以下前缀_Length/address对的相关范围很可能就足够了:

代码语言:javascript
代码运行次数:0
运行
复制
Prefix  #addresses
Length

117 2048
118 1024
119 512
120 256
121 128
122 64
123 32
124 16
125 8
126 4
127 2
128 1

注意,Geolite2文件结构遵循一种混合IPv4 4/IPv4 6表示法,也就是“IPv4 4映射-IPv4 6地址”。

这些“混合”地址是用标准IPv6格式的前96位写成的,其余的32位是用传统的IPv4小点小数点表示法写的。例如,::ffff:192.0.2.128表示IPv4地址192.0.2.128

关于这个(毛茸茸的)主题的更多信息,请在这里查看:

http://en.wikipedia.org/wiki/IPv6

__philippe

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22002542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档