gpt4 book ai didi

geoip - 在 SQL 中查询 GeoLite2 Country CSV

转载 作者:行者123 更新时间:2023-12-01 09:21:35 30 4
gpt4 key购买 nike

有谁知道如何使用 SQL 从 MaxMind 的 GeoLite2 Country CSV 中查找 IP4 地址?

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

我已经搜索了 MaxMind 开发人员文档和 Google,但似乎找不到有关如何查询新格式的任何信息。我确定这是显而易见的,如果我在此期间弄清楚了,我会编辑这篇文章。

我想谢谢我必须找到大于或等于 IP4 地址的第一个块条目,也许是 LIMIT 1。

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

我正在升级,因为我看到日本访问者在旧数据上似乎来自法国的一些有趣结果。

非常感谢

最佳答案

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

(有点令人困惑,Maxmind 使用“Network_Mask_Length”而不是“Prefix_Length”,即公认的 IPv6 术语,来标记该字段。)

Geolite2 CSV 的块字段布局:

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 中提取的记录)
::ffff:81.248.136.0,120,3578476,3017382,,,,,0,0

鉴于上述示例,分配给该块的最后一个 IPv4 地址是什么?
First IP address: 81.248.136.0
Prefix_Length/Network_mask_Length: 120
Last IP address: 81.248.136.255

以下 URL 可能方便快速 查找 可用于特定 Prefix_Length 的 IP 地址数:

http://www.gestioip.net/cgi-bin/subnet_calculator.cgi

__菲利普

关于geoip - 在 SQL 中查询 GeoLite2 Country CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002542/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com