🇨🇳免费IP地址数据库,已支持IPV4+IPV6 ,结构化输出为国家、省、市、县、运营商),中文数据库,方便实用。
Go to file
zhao.binyan d0718c3697 更新文档,升级数据库版本 2023-12-01 18:05:38 +08:00
.github Create php.yml 2021-04-10 01:01:05 +08:00
bin 更新文档,升级数据库版本 2023-12-01 18:05:38 +08:00
src 更新文档,升级数据库版本 2023-12-01 18:05:38 +08:00
tests 兼容 上海交通大学 类似的数据 2019-08-01 11:09:19 +08:00
.gitignore update .gitignore 2020-10-30 18:17:00 +08:00
LICENSE 更新说明文档 2020-11-07 01:19:07 +08:00
README.MD 更新文档,升级数据库版本 2023-12-01 18:05:38 +08:00
composer.json Update composer.json 2021-04-10 01:03:13 +08:00

README.MD

说明

这套识别程序的数据库是免费IP数据库、IP离线地址库。支持将IP转化为结构化的国家、省、市、县、运营商、地区信息)

0该数据库识别是离线的。

1该数据库基于纯真IP库IP地址纠错相关和最新地址获取请直接去纯真官网下面有给出地址。

2纯真IP识别算法来源网络。

3结构化程序来自我2012年的脑洞。

纯真IP已从03年开始存在多年且一直免费实属不易。因为数据存储时并不是结构化的因此有误差在所难免。这个结构化程序国内 ip 可以识别出省份,基本可以识别出市。运营商、县数据看运气。

环境要求

PHP5即可本地安装无网络依赖只需要 php 环境即可本地解析 ip。

使用说明

当前版本为2.x 稳定版仅支持ipv4以后不再增加新功能。如需要ipv6可访问 https://github.com/itbdw/ip-database/tree/3.x

composer require itbdw/ip-database ^2.0

//用框架(如 Laravel不需要手动引入
//require 'vendor/autoload.php';

use itbdw\Ip\IpLocation;

//直接用附带的版本
echo json_encode(IpLocation::getLocation($ip), JSON_UNESCAPED_UNICODE) . "\n";

//支持自定义文件路径
$qqwry_filepath = '/abspath/qqwry.dat';
echo json_encode(IpLocation::getLocation($ip, $qqwry_filepath), JSON_UNESCAPED_UNICODE) . "\n";


响应

成功

{
  "ip": "163.177.65.160",
  "country": "中国",
  "province": "广东",
  "city": "深圳市",
  "county": "",
  "isp": "联通",
  "area": "中国广东省深圳市腾讯计算机系统联通节点"
}

异常

{
  "error": "ip invalid"
}

测试

php tests/ip.php

php tests/ip.php -i 58.196.128.0 

典型返回示例

{"ip":"172.217.25.14","country":"美国","province":"","city":"","county":"","isp":"","area":"美国加利福尼亚州圣克拉拉县山景市谷歌公司"}
{"ip":"140.205.172.5","country":"中国","province":"浙江","city":"杭州市","county":"","isp":"","area":"中国浙江杭州市阿里巴巴网络有限公司BGP数据中心"}
{"ip":"123.125.115.110","country":"中国","province":"北京","city":"","county":"","isp":"联通","area":"中国北京北京百度网讯科技有限公司联通节点(BGP)"}
{"ip":"221.196.0.0","country":"中国","province":"天津","city":"河北区","county":"","isp":"联通","area":"中国天津河北区联通"}
{"ip":"60.195.153.98","country":"中国","province":"北京","city":"顺义区","county":"","isp":"","area":"中国北京顺义区后沙峪金龙网吧"}

更新数据库(不可用)

赞助喝口水

这个项目也是多个日夜思考的结果,如果觉得对你有帮助,小手一抖也是感谢的。

感谢

1纯真IP库 具体见 https://www.cz88.net/help?id=free

如有商用,请去官网获得授权。谢谢

更新日志

 IP 地理位置查询类
 
 2023-11-23         升级 数据库版本 20231122
 
 2021-04-10         13.x 支持ipv6无缝衔接2.x
 
 2020-11-07          1只是更新文档更新数据库。无它。自动更新暂时无法使用。
 
 2019-07-25          1增加自动更新功能参考 https://blog.shuax.com/archives/QQWryUpdate.html 感谢 https://github.com/itbdw/ip-database/issues/10
 
 2017-09-12          1缩减返回数据去掉字段 remark smallarea beginip endip
                          2将调用改为单例模式保证只读取一次文件
                          3修复 bug直接将返回 gbk 编码内容转为 utf-8移除编码隐患
                          4去掉了"省"标志,变成了如 中国 浙江 杭州市 这样的数据

 2017-09-04          1更新 composer 相对路径,bug fix

 2015-06-11          1支持composer 方式引用
                          2更新 is_valid_ip 实现

 2013-11-10          1优化新增支持到市区县城
                          2返回结构增加 smallarea具体请看注释

 2012-10-21          1增加市县显示
                          2去掉不靠谱的自动转码
                             先统一改为 GBK最后再做转换解决编码问题

 2012-08-15          1更新为 PHP5 的规范
                          2增加 wphp_ip2long 方法
                          3增加 get_province 方法
                          4增加 get_isp 方法
                          5增加 is_valid_ip 方法