该项目以 CSV 和 MMDB 格式提供 IP 到位置数据库。
该存储库中有 3 种类型的 IP 数据库: country
、 city
和asn
文件。都有自己的标准格式。
ip_range_start, ip_range_end, country_code
数据库 | 类型 | 执照 | 已更新 | IPv4 | IPv6 | IPv4 编号 | IPv6 编号 |
---|---|---|---|---|---|---|---|
ASN | 国家 | CC0 | 日常的 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
地理馈送 + ASN | 国家 | CC0 | 日常的 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
GeoFeed + Whois + ASN | 国家 | CC0 | 日常的 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
IP转ASN | 国家 | IPtoASN 的 PDDL | 日常的 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
DB-IP Lite | 国家 | 抄送4.0 通过 DB-IP | 每月 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
DB-IP Lite + GeoFeed + Whois + ASN | 国家 | 抄送4.0 通过 DB-IP | 每月 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
GeoLite2 | 国家 | MaxMind 的 GeoLite2 许可 | 每周两次 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
GeoLite2 + GeoFeed + Whois + ASN | 国家 | MaxMind 的 GeoLite2 许可 | 日常的 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
ip_range_start, ip_range_end, country_code, city, state1, state2, latitude, longitude, postcode, timezone
数据库 | 类型 | 执照 | 已更新 | IPv4 | IPv6 | IPv4 编号 | IPv6 编号 |
---|---|---|---|---|---|---|---|
DB-IP Lite | 城市 | 抄送4.0 通过 DB-IP | 每月 | CSV.gz CSV.7z 多媒体数据库 | CSV.gz CSV.7z 多媒体数据库 | CSV.gz CSV.7z | CSV.gz CSV.7z |
GeoLite2 | 城市 | MaxMind 的 GeoLite2 许可 | 每周两次 | CSV.gz CSV.7z 多媒体数据库 | CSV.gz CSV.7z 多媒体数据库 | CSV.gz CSV.7z | CSV.gz CSV.7z |
ip_range_start, ip_range_end, autonomous_system_number, autonomous_system_organization
数据库 | 类型 | 执照 | 已更新 | IPv4 | IPv6 | IPv4 编号 | IPv6 编号 |
---|---|---|---|---|---|---|---|
路线视图 + ASN + DB-IP | ASN | CC BY 4.0 由 RouteViews 和 DB-IP 提供 | 日常的 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
IP转ASN | ASN | IPtoASN 的 PDDL | 日常的 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
DB-IP Lite | ASN | 抄送4.0 通过 DB-IP | 每月 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
GeoLite2 | ASN | MaxMind 的 GeoLite2 许可 | 每周两次 | CSV 多媒体数据库 | CSV 多媒体数据库 | CSV | CSV |
每种文件格式的说明在其自己的目录中提供。
给定类型的所有文件共享相同的文件格式;例如,您可以将一个asn
文件交换为任何其他asn
文件。
通过合并 5 个 RIP(afrinic、apnic、arin、lacnic、ripe ncc)IP-ASN-国家数据库创建。 ASN(自治系统编号)是 IANA 分配给自治系统 (AS) 的唯一编号。
通过合并 5 个 RIP(afrinic、apnic、arin、lacnic、ripe ncc)提供的 WHOIS 数据库创建。
通过合并来自 OpenGeoFeed 的 GeoFeed 数据库和提供商 geofeed 的集合等创建。
我们正在使用此数据库从 asn 的 ipv4 地址获取 AS 编号。这是根据 CC BY 4.0 获得许可的,因此,您必须创建 RouteViews 的归属才能使用 asn 数据库。
您可以从原始站点下载 tsv 格式的每小时更新的数据库。这是根据公共领域奉献和许可证 v1.0 获得许可的。与上面的ASN
数据库有一些不同。
您可以从 ip-to-asn-lite 或 ip-to-country-lite 或 ip-to-city-lite 下载并读取许可证。 asn中使用的大多数AS组织名称都使用ip-to-asn-lite数据库。我们还使用 ip-to-asn-lite 从 ip 地址获取 AS Number 作为补充。
这些数据库已获得 CC BY 4.0 许可,因此,您必须创建 DB-IP.com 的归属才能使用 DB-IP 数据库。
对于 Web 应用程序,您必须在显示或使用数据库结果的页面上包含返回 DB-IP.com 的链接。您可以通过将 HTML 代码片段粘贴到您的代码中来完成此操作: IP Geolocation by DB-IP
。
如果您需要更高的准确性或不需要归属或每日更新,请使用 db-ip 的商业版本。
GeoLite2 由 MaxMind 创建。 GeoLite2 的许可证写在 GEOLITE2_LICENSE 中,最终用户许可协议 (EULA) 写在 GEOLITE2_EULA 中。如果您使用这些数据库,请仔细阅读 GEOLITE2_LICENSE 和 GEOLITE2_EULA 文件。该套餐附带一定的限制和义务,最值得注意的是:
您无法阻止图书馆更新数据库。
您不能使用 GeoLite2 数据:
出于 FCRA 的目的,
识别特定家庭或个人。
您可以阅读最新版本的 GeoLite2 EULA。 GeoLite2 数据库是由 MaxMind 在 CC BY-SA 4.0 下提供的,因此,您必须创建 MaxMind 的归属才能使用 GeoLite2 数据库。如果您需要更好的精度,请使用商业版本GeoIp2。
这取决于您的用例!不过,我们确实有一些简单的建议:
如果您需要邮政编码或时区: geolite2-city
如果您需要具有 CC-BY 许可证的城市数据: dbip-city
如果您需要具有公共领域许可证的国家/地区数据库: geo-whois-asn-country
如果您需要高精度和广泛的 IP 范围国家数据库: geolite2-geo-whois-asn-country
相当于 geolite2 geolite2-country
geolite2-country
和其他 IP 范围的geo-whois-asn-country
。 (截至 2024 年 8 月,IPv4 比geolite2-country
宽 0.10%,IPv6 宽 2.34%)
如果需要ASN数据库: asn
由于没有关于 IP 地址和国家/地区代码的明确信息,因此很难定性讨论公共领域数据的准确性,但可以通过将其与 GeoLite2 和 DbIp Lite 中的国家/地区信息进行比较来估计大致准确性。通过比较以高精度着称的GeoLite2中的数据库与其他数据库的差异,我们可以看到Public Domain的准确性。
数据库 | 相同的 | 差异 | 空的 | 额外的 |
---|---|---|---|---|
dbip 国家 | 96.15% | 3.85% | 0.00% | 0.42% |
asn国家 | 95.97% | 4.00% | 0.03% | 0.03% |
地理 ASN 国家 | 97.26% | 2.71% | 0.03% | 0.06% |
地理 WHOIS-ASN-国家/地区 | 96.98% | 2.99% | 0.03% | 0.12% |
iptoasn国家 | 76.80% | 4.99% | 18.21% | 1.26% |
测量于2024年10月9日进行。由于ipv6范围太宽,因此此处的测量仅限于ipv4结果。 “相同”+“差异”+“空”显示 GeoLite2 IP 范围,GeoLite2 IP 范围大小列为 100%。
“相同”表示数据库中的国家/地区代码与 GeoLite2 中的国家/地区代码相同的百分比。
“Diff”表示数据库中国家/地区代码与 GeoLite2 国家/地区代码不同的百分比。
“空”显示数据库中具有 GeoLite2 国家/地区代码但没有相应国家/地区代码的 IP 的百分比。
“额外”表示未列出 GeoLite2 国家/地区代码但在数据库中列出了国家/地区代码的 IP 的百分比。
我们可以看到,对于除 iptoasn-country 之外的所有数据,country_code 在超过 96% 的情况下与 GeoLite2 结果匹配。尽管由于更新时间和信息优先级的差异,结果存在一些差异,但我们相信公共领域数据显示出一定程度的准确性。
如果您想将 MMDB 文件集成到现有项目中,有几个库可以提供帮助。
使用 MMDB 文件时,存在多种语言的库。 Maxmind 为许多流行语言开发了官方库:.NET、C、Java、Node.js、Perl、PHP、Python 和 Ruby,还有其他语言的第三方阅读器:Erlang、Go、Rust。
如果您希望从 CSV 文件创建您自己的 MMDB 文件(以自定义其格式),有几个官方库:Go 和 Perl (现已存档) 。还有一些第三方选项:Python 和 Rust。
图书馆 | 语言 | 描述 | 类型 | 汽车 更新 |
---|---|---|---|---|
ip 位置 api | Node.js | 使用内存数据库(7MB RAM)快速进行 IP 到国家/地区查找 | country city | ✓ |
国家 国家额外 | 浏览器js | 在浏览器中查找 IP 到国家/地区 | country | ✓ |
地理编码 地理编码额外 | 浏览器js | 在浏览器中进行地理编码查找的 IP | country latitude longitude | ✓ |
应用 | 语言 | 描述 | 类型 | 汽车 更新 |
---|---|---|---|---|
IP位置服务器 | 爪哇 | 将 IP 地址映射到位置的内存中 GRPC 和 HTTP 服务器(至少需要 1.5GB RAM) | country asn city | ✓ |
ip 位置 api | 去 | API 服务器创建/支持 MMDB、PostgreSQL、MySQL / MariaDB 和 SQLite | country asn city | ✓ |
Ip-geo-API | 去 | 内存API服务器 | country | ✘ |
IP信息离线 | 视窗 | 显示有关 IP 地址的信息(本地数据)的桌面工具 | country asn city | ✘ |
工具 | 描述 |
---|---|
ip 位置到 mmdb | 从此数据库中的 CSV 文件到 MMDB 文件的基本转换 |
MMDB融合 | 从此数据库中的 CSV 文件创建和自定义 MMDB 文件 |
所需的许可证取决于您使用的数据库。使用前请仔细阅读每个数据库许可证。
您可以出于任何目的使用 PDDL(ODC 公共领域专用和许可证)或 CC0(知识共享零)许可的数据库,而无需注明出处。
如果您可以链接回 sapics/ip-location-db,并为该项目加注星标以帮助其他人找到它,我们将不胜感激。