php判断ip是否属于某个区段,判断合法的ip地址
2什么是ip2region?
Ip2region是一个Ip地址位置库,准确率99.9%,0.0x毫秒级查询。提供Java、PHP、C、Python、Node.js、Golang、C#、Rust、Lua的查询绑定,二进制、B树、内存三种查询算法!
2 IP 2 region 1.9的更新
1.数据升级到2019/05/02版本,国外数据增加了大量市级数据,ip2region.db增加到7MB。
2.ip2region.db的生成程序是开源的,目前提供java语言实现。在{ ip2region _ root }/maker目录下,方便学习IP 2 region或更改自定义生成配置等。后面会提供C语言实现。
2区域特征
1.准确率99.9%,定期更新。
数据聚合了一些知名的ip到地名查询提供商的数据。这些是他们官方的准确率。经过测试,它们比纯的要准确得多。
每次汇总数据需要1-2天,会不定期更新。
2.标准化数据格式
每个ip段都有固定的格式:城市Id国家地区省城市ISP
只有中国的数据精确到城市,其他国家只能定位到国家。前后所有选项都是0,已经包含了你能找到的所有国家,大的小的。
(请忽略之前的城市Id,个人项目要求)
3.小尺寸
生成的数据库文件ip2region.db只有1.5m(1.2版之前是3.5M)。
4.多查询客户端支持,0.0x级查询
集成的客户端有:java、php、c、python、php扩展、nodejs、golang。
提供了两种具有以下响应时间的查询算法:
客户端/二进制算法/b树算法/内存算法:
Java/0.x ms /0.x ms /0.1x ms(使用RandomAccessFile)
Php/0.x ms /0.1x ms /0.1x ms (php扩展会更快)
C/0.0xms/0.0xms /0.00x ms (b树算法基本稳定在0.02x ms级别)
Python/0.x毫秒/0.1毫秒/0.1毫秒
任何客户端b树都比二进制算法快。
使用
1.配置maven:
地址
org.lionsoul
ip2区域
1.7.2
2.nuget安装命令
安装包ip2区域
3.测试程序
java:
cd绑定/java
所有蚂蚁
java -jar ip2region-{version}。罐子。/data/ip2region.db
php:
php绑定/php/testSearch。/data/ip2region.db
丙:
cd绑定/c/
gcc-g-O2 test search . c ip2 region . c。/a.out././data/ip2region.db
您将看到以下界面:
正在初始化B树.
-
ip2region测试脚本
作者:chenxin619315@gmail.com
键入“quit”退出程序
-
ip2区域
输入ip地址开始测试,第一次会有点慢。运行命令后,访问二进制,内存尝试相应的算法。建议使用b树算法,对于追求速度和并发的人使用内存算法。具体请参考不同客户端的测试源代码。
其他的
binding的所有搜索接口都不是线程安全的,不同的线程可以通过创建不同的查询对象来使用它们。
在发布对象之前执行预查询的内存接口可以安全地用在多线程环境中。
开放源地址
捐助者
更多精彩内容,请关注“IT实战联盟”微信官方账号~ ~ ~
图像