社区首页 >问答首页 >在SQL中查询GeoLite2乡村CSV

在SQL中查询GeoLite2乡村CSV
EN

Stack Overflow用户
提问于 2014-02-24 17: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 07: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 00: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

复制
相关文章
SQL中查询效率优化
索引是独立于表的一中物理存储结构,当我们语句中用到索引的字段的时候,数据库会首先去索引中查找满足条件的数据的索引值(相当于页码),然后在根据索引值去表中筛选出我们的结果。 当我们使用索引和不使用索引的时候,效率会相差相当大,特别是当数据量越来越大的时候。 另外需要注意的是并不是我们在where条件里面用有索引的字段进行筛选数据库在查询的时候就会走索引,有些写法会让数据库不走索引,接下来会总结一些会让查询进行全表扫描而不走索引的写法;
Awesome_Tang
2018/09/11
2.6K0
SQL中查询效率优化
sql中的嵌套查询_sql的多表数据嵌套查询
测试的时候发现取出的是一条数据, 因为测试的时候是一天中的两条数据, 没有不同的日期,所以当日以为是正确的 ,然而第二天写入数据了,要取出数据,却发现没有数据, 返回空的行, 以为都是代码又有问题 了,找了半天都没有 ,仔细看看了存储过程中的代码,发现这样返回的数据的确是空的。
全栈程序员站长
2022/09/22
7.1K0
一条查询SQL在MySQL中是怎么执行的
平时我们使用的数据库,看到的通常是一个整体,比如我们执行一条查询SQL,返回一个结果集,却不知道这条语句在MySQL内部是如何执行的,接下来我们就来简单的拆解一下MySQL,看看MySQL是由哪些“零件”组成的,在这个过程中逐步的揭开MySQL的面纱,对MySQL有个深入的理解。这样在我们以后遇到MySQL的一些异常或者问题的时候,就可以快速定位问题并解决问题。
故里
2020/11/25
4.8K0
一条查询SQL在MySQL中是怎么执行的
使用CSV模块和Pandas在Python中读取和写入CSV文件
CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据。CSV是一种紧凑,简单且通用的数据交换通用格式。许多在线服务允许其用户将网站中的表格数据导出到CSV文件中。CSV文件将在Excel中打开,几乎所有数据库都具有允许从CSV文件导入的工具。标准格式由行和列数据定义。此外,每行以换行符终止,以开始下一行。同样在行内,每列用逗号分隔。
用户7466307
2020/06/16
20.1K0
xml 中 sql 模糊查询 like
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131044.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/11
1.6K0
kettle中实现动态SQL查询
在ETL项目中,通常有根据运行时输入参数去执行一些SQL语句,如查询数据。本文通过kettle中的表输入(“table input”)步骤来说明动态查询、参数查询。示例代码使用内存数据库(H2),下载就可以直接运行,通过示例学习更轻松。
全栈程序员站长
2022/09/09
5.6K0
kettle中实现动态SQL查询
JAVA中SQL查询语句大全,select多表查询,各种查询
– 查询emp表中的所有部门, 剔除重复的记录, 提示: distinct用于剔除重复值
全栈程序员站长
2022/09/02
2.2K0
JAVA中SQL查询语句大全,select多表查询,各种查询
mongodb与sql在查询上的区别
之前在“这个场景更适合使用NoSQL”文章中通过和SQL的对比 介绍了NOSQL数据存储结构的特点,一位朋友看后希望再介绍下NOSQL查询方面的特点 这里以NOSQL中比较典型的mongodb数据库为例,先从用法上看下mongodb的操作方式,以后会更深入的介绍mongodb查询方面的细节 下面从3个方面看下mongodb的查询方式 (1)简单查询 类似于sql的 select * from table; (2)条件查询 类似于sql的 select * from table where
dys
2018/04/02
2K0
在python中使用csv读写CSV 原
1.一般读写方式 # 读取csv文件 import csv with open('some.csv', 'rb') as f: # 采用b的方式处理可以省去很多问题 reader = csv.reader(f) for row in reader: # do something with row, such as row[0],row[1] import csv with open('some.csv', 'wb') as f: # 采用b的方式
晓歌
2018/08/15
1.1K0
sql中对嵌套查询的处理原则_sql的多表数据嵌套查询
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169416.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.7K0
hibernate sql查询_sql server查询命令
SQLQuery接口用于接受一个sql语句进行查询,然后调用list()或uniqueResult()进行查询。但是sql语句不会直接封装到实体对象里,需要手写代码才可以封装到实体中。
全栈程序员站长
2022/11/11
2.7K0
SQL中的连接查询与嵌套查询「建议收藏」
若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询,
全栈程序员站长
2022/08/22
5K0
SQL中的连接查询与嵌套查询「建议收藏」
sql中的联合查询「建议收藏」
我们在实际应用中,或许会用到关于sql的联合查询的应用,下面来总结一下联合查询的具体应用,做一下记录便于记忆。
全栈程序员站长
2022/08/26
2.3K0
SQL中查询优化的主要策略
为了能提高查询效率按优先级主要有一下策略: 1、尽可能早的执行选择操作(最基本的一条) 2、把笛卡尔积和随后的选择操作合并成F连接运算 3、同时计算一连串的选择和投影运算 4、保留同一子式的结果 5、适当对关系文件进行预处理 6、计算表达式之前先估算怎么计算效率最高
用户1215536
2018/02/05
2K0
oracle中sql的递归查询运用
主键 名字 职位 上级id 部门id
小小鱼儿小小林
2020/06/23
2.7K0
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
id int primary key auto_increment, — 主键id
全栈程序员站长
2022/09/22
4.3K0
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
sql连接查询和嵌套查询_sql子查询和连接查询
【例二】:查询 JAVA第一学年 课程成绩排名前十的学生 并且分数要大于80 的学生信息(学号、姓名、课程名称、分数)
全栈程序员站长
2022/09/22
4.4K0
sql连接查询和嵌套查询_sql子查询和连接查询
SQL在查询过程中,遇到除数为0该怎么办?
我们在进行数据统计的时候,经常会遇到求百分比,环比,同比等这些需要除以某个数的情况,而如果除数为0,数据库是会报错的。
CRMEB商城源码
2022/07/08
1.3K0
SQL查询
可给数据列取一个新别名 可给表取一个新别名 可把经计算或总结的结果用另外一个新名称来代替
xiaozhangStu
2023/05/04
1.7K0
[转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL
目前LINQ to SQL的资料不多——老赵的意思是,目前能找到的资料都难以摆脱“官方用法”的“阴影”。LINQ to SQL最权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得“大开大阖”,依旧有清晰的“官方”烙印——这简直是一定的。不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可能就会发现别样的风景。老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to SQL开发方面积累了一定经验,也总结出了一些官方文档上并未提及的有用做法,特此和大家分享。
菩提树下的杨过
2018/01/24
4.9K0
[转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL

相似问题

更新GeoLite2 CSV文件

37

Powershell CSV to SQL查询

13

在类似sql的python中查询csv文件

42

使用odbc在csv文件中执行SQL查询

25

乡村色彩

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文