Ip2region is a offline IP location library with accuracy rate of 99.9% and 0.0x millseconds searching performance. DB file is ONLY a few megabytes with all IP address stored. binding for Java,PHP,C,Python,Nodejs,Golang,C#,lua. Binary,B-tree,Memory searching algorithm

Overview

Ip2region是什么?

ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法。

Ip2region特性

99.9%准确率

数据聚合了一些知名ip到地名查询提供商的数据,这些是他们官方的的准确率,经测试着实比经典的纯真IP定位准确一些。
ip2region的数据聚合自以下服务商的开放API或者数据(升级程序每秒请求次数2到4次):
01, >80%, 淘宝IP地址库, http://ip.taobao.com/
02, ≈10%, GeoIP, https://geoip.com/
03, ≈2%, 纯真IP库, http://www.cz88.net/
备注:如果上述开放API或者数据都不给开放数据时ip2region将停止数据的更新服务。

标准化的数据格式

每条ip数据段都固定了格式:

_城市Id|国家|区域|省份|城市|ISP_

只有中国的数据精确到了城市,其他国家有部分数据只能定位到国家,后前的选项全部是0,已经包含了全部你能查到的大大小小的国家(请忽略前面的城市Id,个人项目需求)。

体积小

包含了全部的IP,生成的数据库文件ip2region.db只有几MB,最小的版本只有1.5MB,随着数据的详细度增加数据库的大小也慢慢增大,目前还没超过8MB。

查询速度快

全部的查询客户端单次查询都在0.x毫秒级别,内置了三种查询算法

  1. memory算法:整个数据库全部载入内存,单次查询都在0.1x毫秒内,C语言的客户端单次查询在0.00x毫秒级别。
  2. binary算法:基于二分查找,基于ip2region.db文件,不需要载入内存,单次查询在0.x毫秒级别。
  3. b-tree算法:基于btree算法,基于ip2region.db文件,不需要载入内存,单词查询在0.x毫秒级别,比binary算法更快。

任何客户端b-tree都比binary算法快,当然memory算法固然是最快的!

多查询客户端的支持

已经集成的客户端有:java、C#、php、c、python、nodejs、php扩展(php5和php7)、golang、rust、lua、lua_c, nginx。

binding 描述 开发状态 binary查询耗时 b-tree查询耗时 memory查询耗时
c ANSC c binding 已完成 0.0x毫秒 0.0x毫秒 0.00x毫秒
c# c# binding 已完成 0.x毫秒 0.x毫秒 0.1x毫秒
golang golang binding 已完成 0.x毫秒 0.x毫秒 0.1x毫秒
java java binding 已完成 0.x毫秒 0.x毫秒 0.1x毫秒
lua lua实现的binding 已完成 0.x毫秒 0.x毫秒 0.x毫秒
lua_c lua的c扩展 已完成 0.0x毫秒 0.0x毫秒 0.00x毫秒
nginx nginx的c扩展 已完成 0.0x毫秒 0.0x毫秒 0.00x毫秒
nodejs nodejs 已完成 0.x毫秒 0.x毫秒 0.1x毫秒
php php实现的binding 已完成 0.x毫秒 0.1x毫秒 0.1x毫秒
php5_ext php5的c扩展 已完成 0.0x毫秒 0.0x毫秒 0.00x毫秒
php7_ext php7的c扩展 已完成 0.0毫秒 0.0x毫秒 0.00x毫秒
python python bindng 已完成 0.x毫秒 0.x毫秒 0.x毫秒
rust rust binding 已完成 0.x毫秒 0.x毫秒 0.x毫秒

ip2region快速测试

请参考每个binding下的README说明去运行cli测试程序,例如C语言的demo运行如下:

cd binding/c/
gcc -g -O2 testSearcher.c ip2region.c
./a.out ../../data/ip2region.db

会看到如下cli界面:

initializing  B-tree ... 
+----------------------------------+
| ip2region test script            |
| Author: [email protected]  |
| Type 'quit' to exit program      |
+----------------------------------+
p2region>> 101.105.35.57
2163|中国|华南|广东省|深圳市|鹏博士 in 0.02295 millseconds

输入IP地址开始测试,第一次会稍微有点慢,在运行命令后面接入binary,memory来尝试其他算法,建议使用b-tree算法,速度和并发需求的可以使用memory算法,具体集成请参考不同binding下的测试源码。

ip2region安装

具体请参考每个binding下的README文档和测试demo,以下是一些可用的快捷安装方式:

maven仓库地址

<dependency>
    <groupId>org.lionsoul</groupId>
    <artifactId>ip2region</artifactId>
    <version>1.7.2</version>
</dependency>

nodejs

npm install node-ip2region --save

nuget安装

Install-Package IP2Region

php composer

# 插件来自:https://github.com/zoujingli/ip2region
composer require zoujingli/ip2region

ip2region 并发使用

  1. 全部binding的各个search接口都不是线程安全的实现,不同线程可以通过创建不同的查询对象来使用,并发量很大的情况下,binary和b-tree算法可能会打开文件数过多的错误,请修改内核的最大允许打开文件数(fs.file-max=一个更高的值),或者使用持久化的memory算法。

  2. memorySearch接口,在发布对象前进行一次预查询(本质上是把ip2region.db文件加载到内存),可以安全用于多线程环境。

ip2region.db的生成

从1.8版本开始,ip2region开源了ip2region.db生成程序的java实现,提供了ant编译支持,编译后会得到以下提到的dbMaker-{version}.jar,对于需要研究生成程序的或者更改自定义生成配置的请参考${ip2region_root}/maker/java内的java源码。

从ip2region 1.2.2版本开始里面提交了一个dbMaker-{version}.jar的可以执行jar文件,用它来完成这个工作:

  1. 确保你安装好了java环境(不玩Java的童鞋就自己谷歌找找拉,临时用一用,几分钟的事情)
  2. cd到${ip2region_root}/maker/java,然后运行如下命令:
java -jar dbMaker-{version}.jar -src 文本数据文件 -region 地域csv文件 [-dst 生成的ip2region.db文件的目录]

# 文本数据文件:db文件的原始文本数据文件路径,自带的ip2region.db文件就是/data/ip.merge.txt生成而来的,你可以换成自己的或者更改/data/ip.merge.txt重新生成
# 地域csv文件:该文件目的是方便配置ip2region进行数据关系的存储,得到的数据包含一个city_id,这个直接使用/data/origin/global_region.csv文件即可
# ip2region.db文件的目录:是可选参数,没有指定的话会在当前目录生成一份./data/ip2region.db文件
  1. 获取生成的ip2region.db文件覆盖原来的ip2region.db文件即可
  2. 默认的ip2region.db文件生成命令:
cd ${ip2region_root}/java/
java -jar dbMaker-1.2.2.jar -src ./data/ip.merge.txt -region ./data/global_region.csv

# 会看到一大片的输出

相关备注

声明

ip2region重点在于研究IP数据的存储设计和各种语言的查询实现,并没有原始IP数据的支撑,数据来源请参考上面的描述,升级数据需要很多IP的支撑并且会对原始平台造成一定量的请求压力,本项目不保证及时的数据更新,没有也不会有商用版本,你可以使用自定义的数据导入ip2region进行自定义查询的实现。

技术交流

  1. 数据库文件的结构和原理请阅读 @冬芽 的blog:“ip2region数据库文件的结构和原理”
  2. ip2region交流分享,微信:lionsoul2014(请备注ip2region),QQ:1187582057(很少关注)
You might also like...
An installer package that let's you install NodeJS and NPM as a Composer dependency.

NodeJS installer for Composer This is an installer that will download NodeJS and NPM and install them in your Composer dependencies. Installation is s

Deeper is a easy way to compare if 2 objects is equal based on values in these objects. This library is heavily inspired in Golang's reflect.DeepEqual().

Deeper Deeper is a easy way to compare if 2 objects is equal based on values in these objects. This library is heavily inspired in Golang's reflect.De

PHP Japanese string helper functions for converting Japanese strings from full-width to half-width and reverse. Laravel Rule for validation Japanese string only full-width or only half-width.

Japanese String Helpers PHP Japanese string helper functions for converting Japanese strings from full-width to half-width and reverse. Laravel Rule f

Optimizes class loading performance by generating a single PHP file containing all of the autoloaded files.
Optimizes class loading performance by generating a single PHP file containing all of the autoloaded files.

Class Preloader for PHP This tool is used to generate a single PHP script containing all of the classes required for a specific use case. Using a sing

JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

XXTEA encryption algorithm library for PHP.

XXTEA for PHP Introduction XXTEA is a fast and secure encryption algorithm. This is a XXTEA library for PHP. It is different from the original XXTEA e

Integrates the ClassicPress Plugin Directory and any plugin stored in GitHub (tagged with classicpress-plugin) in the ClassicPress Admin

ClassicPress Plugin Directory Adds a new screen in a ClassicPress Install where you can browse, install, activate, deactivate, update, delete and pagi

Minimalistic bookmark manager for your own server written in PHP. Bookmarks are stored in a sqlite database.

b - Bookmark manager b is a minimalistic bookmark manager for your own server. Written in PHP. Bookmarks are stored in a sqlite database. Features: fi

Library download currency rate and save in database, It's designed to be extended by any available data source.

Library download currency rate and save in database, It's designed to be extended by any available data source.

Comments
  • [数据补充源]!少了些ip段

    [数据补充源]!少了些ip段

    36.132.128.0|36.132.147.255|中国|0|黑龙江省|哈尔滨市|移动 36.132.148.0|36.132.150.255|中国|0|黑龙江省|齐齐哈尔市|移动 36.132.151.0|36.132.255.255|中国|0|黑龙江省|哈尔滨市|移动 36.133.0.0|36.133.11.255|中国|0|广东省|广州市|移动 36.133.12.0|36.133.23.255|中国|0|湖南省|长沙市|移动 36.133.24.0|36.133.35.255|中国|0|江苏省|南京市|移动 36.133.36.0|36.133.47.255|中国|0|河南省|郑州市|移动 36.133.48.0|36.133.59.255|中国|0|北京|北京市|移动 36.133.60.0|36.133.71.255|中国|0|四川省|成都市|移动 36.133.72.0|36.133.83.255|中国|0|上海|上海市|移动 36.133.84.0|36.133.95.255|中国|0|浙江省|0|移动 36.133.96.0|36.133.107.255|中国|0|陕西省|西安市|移动 36.133.108.0|36.133.119.255|中国|0|重庆|重庆市|移动 36.133.120.0|36.133.131.255|中国|0|山东省|济南市|移动 36.133.132.0|36.133.143.255|中国|0|江苏省|苏州市|移动 36.133.144.0|36.133.151.255|中国|0|广东省|广州市|移动 36.133.152.0|36.133.159.255|中国|0|湖南省|长沙市|移动 36.133.160.0|36.133.175.255|中国|0|江苏省|南京市|移动 36.133.176.0|36.133.191.255|中国|0|广东省|广州市|移动 36.133.192.0|36.133.199.255|中国|0|北京|北京市|移动 36.133.200.0|36.133.207.255|中国|0|四川省|成都市|移动 36.133.208.0|36.133.223.255|中国|0|河南省|0|移动 36.133.224.0|36.133.231.255|中国|0|广东省|广州市|移动 36.133.232.0|36.133.239.255|中国|0|重庆|重庆市|移动 36.133.240.0|36.133.247.255|中国|0|北京|北京市|移动 36.133.248.0|36.133.255.255|中国|0|陕西省|西安市|移动 36.134.0.0|36.134.15.255|中国|0|浙江省|杭州市|移动 36.134.16.0|36.134.23.255|中国|0|江苏省|南京市|移动 36.134.24.0|36.134.31.255|中国|0|重庆|重庆市|移动 36.134.32.0|36.134.39.255|中国|0|上海|上海市|移动 36.134.40.0|36.134.47.255|中国|0|山东省|0|移动 36.134.48.0|36.134.63.255|中国|0|浙江省|杭州市|移动 36.134.64.0|36.134.65.255|中国|0|天津|天津市|移动 36.134.66.0|36.134.67.255|中国|0|吉林省|长春市|移动 36.134.68.0|36.134.69.255|中国|0|辽宁省|0|移动 36.134.70.0|36.134.71.255|中国|0|福建省|福州市|移动 36.134.72.0|36.134.73.255|中国|0|甘肃省|兰州市|移动 36.134.74.0|36.134.75.255|中国|0|云南省|昆明市|移动 36.134.76.0|36.134.77.255|中国|0|山西省|太原市|移动 36.134.78.0|36.134.79.255|中国|0|湖北省|武汉市|移动 36.134.80.0|36.134.81.255|中国|0|江西省|南昌市|移动 36.134.82.0|36.134.83.255|中国|0|0|0|移动 36.134.84.0|36.134.85.255|中国|0|安徽省|合肥市|移动 36.134.86.0|36.134.87.255|中国|0|广西|南宁市|移动 36.134.88.0|36.134.89.255|中国|0|内蒙古|呼和浩特市|移动

    36.142.0.0|36.142.1.255|中国|0|四川省|成都市|移动 36.142.2.0|36.142.31.255|中国|0|甘肃省|兰州市|移动 36.142.32.0|36.142.127.255|中国|0|甘肃省|0|移动 36.142.128.0|36.142.131.255|中国|0|甘肃省|白银市|移动 36.142.132.0|36.142.135.255|中国|0|甘肃省|张掖市|移动 36.142.136.0|36.142.139.255|中国|0|甘肃省|武威市|移动 36.142.140.0|36.142.145.255|中国|0|甘肃省|定西市|移动 36.142.146.0|36.142.153.255|中国|0|甘肃省|天水市|移动 36.142.154.0|36.142.157.255|中国|0|甘肃省|平凉市|移动 36.142.158.0|36.142.163.255|中国|0|甘肃省|庆阳市|移动 36.142.164.0|36.142.165.255|中国|0|甘肃省|甘南市|移动 36.142.166.0|36.142.171.255|中国|0|甘肃省|陇南市|移动 36.142.172.0|36.142.175.255|中国|0|甘肃省|临夏市|移动 36.142.176.0|36.142.187.255|中国|0|甘肃省|兰州市|移动 36.142.188.0|36.142.189.255|中国|0|甘肃省|金昌市|移动 36.142.190.0|36.142.191.255|中国|0|甘肃省|嘉峪关市|移动 36.142.192.0|36.142.195.255|中国|0|甘肃省|酒泉市|移动 36.142.196.0|36.142.197.255|中国|0|甘肃省|白银市|移动 36.142.198.0|36.142.199.255|中国|0|甘肃省|张掖市|移动 36.142.200.0|36.142.201.255|中国|0|甘肃省|武威市|移动 36.142.202.0|36.142.203.255|中国|0|甘肃省|定西市|移动 36.142.204.0|36.142.205.255|中国|0|甘肃省|天水市|移动 36.142.206.0|36.142.207.255|中国|0|甘肃省|平凉市|移动 36.142.208.0|36.142.209.255|中国|0|甘肃省|庆阳市|移动 36.142.210.0|36.142.211.255|中国|0|甘肃省|甘南市|移动 36.142.212.0|36.142.213.255|中国|0|甘肃省|陇南市|移动 36.142.214.0|36.142.215.255|中国|0|甘肃省|临夏市|移动 36.142.216.0|36.142.217.255|中国|0|甘肃省|兰州市|移动 36.142.218.0|36.142.219.255|中国|0|甘肃省|金昌市|移动 36.142.220.0|36.142.221.255|中国|0|甘肃省|嘉峪关市|移动 36.142.222.0|36.142.223.255|中国|0|甘肃省|酒泉市|移动 36.142.224.0|36.142.255.255|中国|0|甘肃省|0|移动

    36.143.0.0|36.143.0.255|中国|0|河北省|张家口市|移动 36.143.1.0|36.143.2.255|中国|0|河北省|廊坊市|移动 36.143.3.0|36.143.4.255|中国|0|河北省|邯郸市|移动 36.143.5.0|36.143.12.255|中国|0|河北省|张家口市|移动 36.143.13.0|36.143.14.255|中国|0|河北省|保定市|移动 36.143.15.0|36.143.17.255|中国|0|河北省|石家庄市|移动 36.143.18.0|36.143.22.255|中国|0|河北省|唐山市|移动 36.143.23.0|36.143.29.255|中国|0|河北省|保定市|移动 36.143.30.0|36.143.31.255|中国|0|河北省|石家庄市|移动 36.143.32.0|36.143.35.255|中国|0|河北省|保定市|移动 36.143.36.0|36.143.39.255|中国|0|河北省|唐山市|移动 36.143.40.0|36.143.43.255|中国|0|河北省|邯郸市|移动 36.143.44.0|36.143.47.255|中国|0|河北省|保定市|移动 36.143.48.0|36.143.51.255|中国|0|河北省|张家口市|移动 36.143.52.0|36.143.55.255|中国|0|河北省|0|移动 36.143.56.0|36.143.59.255|中国|0|河北省|邯郸市|移动 36.143.60.0|36.143.63.255|中国|0|河北省|廊坊市|移动 36.143.64.0|36.143.67.255|中国|0|河北省|石家庄市|移动 36.143.68.0|36.143.71.255|中国|0|河北省|保定市|移动 36.143.72.0|36.143.75.255|中国|0|河北省|张家口市|移动 36.143.76.0|36.143.79.255|中国|0|河北省|保定市|移动 36.143.80.0|36.143.95.255|中国|0|河北省|0|移动 36.143.96.0|36.143.99.255|中国|0|河北省|唐山市|移动 36.143.100.0|36.143.107.255|中国|0|河北省|石家庄市|移动 36.143.108.0|36.143.115.255|中国|0|河北省|廊坊市|移动 36.143.116.0|36.143.119.255|中国|0|河北省|唐山市|移动 36.143.120.0|36.143.123.255|中国|0|河北省|张家口市|移动 36.143.124.0|36.143.127.255|中国|0|河北省|保定市|移动 36.143.128.0|36.143.255.255|中国|0|北京|北京市|移动

    36.148.0.0|36.148.31.255|中国|0|湖南省|长沙市|移动 36.148.32.0|36.148.49.255|中国|0|湖南省|常德市|移动 36.148.50.0|36.148.63.255|中国|0|湖南省|娄底市|移动 36.148.64.0|36.148.79.255|中国|0|湖南省|株洲市|移动 36.148.80.0|36.148.87.255|中国|0|湖南省|郴州市|移动 36.148.88.0|36.148.95.255|中国|0|湖南省|衡阳市|移动 36.148.96.0|36.148.103.255|中国|0|湖南省|怀化市|移动 36.148.104.0|36.148.107.255|中国|0|湖南省|永州市|移动 36.148.108.0|36.148.111.255|中国|0|湖南省|益阳市|移动 36.148.112.0|36.148.123.255|中国|0|湖南省|张家界市|移动 36.148.124.0|36.148.124.255|中国|0|湖南省|长沙市|移动 36.148.125.0|36.148.127.255|中国|0|湖南省|湘潭市|移动 36.148.128.0|36.148.143.255|中国|0|湖南省|常德市|移动 36.148.144.0|36.148.155.255|中国|0|湖南省|郴州市|移动 36.148.156.0|36.148.159.255|中国|0|湖南省|衡阳市|移动 36.148.160.0|36.148.163.255|中国|0|湖南省|娄底市|移动 36.148.164.0|36.148.168.255|中国|0|湖南省|永州市|移动 36.148.169.0|36.148.175.255|中国|0|湖南省|益阳市|移动 36.148.176.0|36.148.177.255|中国|0|湖南省|岳阳市|移动 36.148.178.0|36.148.189.255|中国|0|湖南省|长沙市|移动 36.148.190.0|36.148.255.255|中国|0|湖南省|0|移动

    36.161.0.0|36.161.15.255|中国|0|安徽省|六安市|移动 36.161.16.0|36.161.31.255|中国|0|安徽省|蚌埠市|移动 36.161.32.0|36.161.47.255|中国|0|安徽省|淮南市|移动 36.161.48.0|36.161.63.255|中国|0|安徽省|铜陵市|移动 36.161.64.0|36.161.79.255|中国|0|安徽省|池州市|移动 36.161.80.0|36.161.95.255|中国|0|安徽省|黄山市|移动 36.161.96.0|36.161.127.255|中国|0|安徽省|合肥市|移动 36.161.128.0|36.161.131.255|中国|0|安徽省|淮北市|移动 36.161.132.0|36.161.135.255|中国|0|安徽省|合肥市|移动 36.161.136.0|36.161.143.255|中国|0|安徽省|宣城市|移动 36.161.144.0|36.161.151.255|中国|0|安徽省|马鞍山市|移动 36.161.152.0|36.161.157.255|中国|0|安徽省|铜陵市|移动 36.161.158.0|36.161.159.255|中国|0|安徽省|合肥市|移动 36.161.160.0|36.161.167.255|中国|0|安徽省|池州市|移动 36.161.168.0|36.161.183.255|中国|0|安徽省|黄山市|移动 36.161.184.0|36.161.191.255|中国|0|安徽省|宿州市|移动 36.161.192.0|36.161.207.255|中国|0|安徽省|亳州市|移动 36.161.208.0|36.161.223.255|中国|0|安徽省|六安市|移动 36.161.224.0|36.161.231.255|中国|0|安徽省|宣城市|移动 36.161.232.0|36.161.239.255|中国|0|安徽省|合肥市|移动 36.161.240.0|36.161.240.255|中国|0|安徽省|芜湖市|移动 36.161.241.0|36.161.247.255|中国|0|安徽省|安庆市|移动 36.161.248.0|36.161.255.255|中国|0|安徽省|黄山市|移动

    120.231.0.0|120.231.4.255|中国|0|广东省|0|移动 120.231.5.0|120.231.38.255|中国|0|广东省|湛江市|移动 120.231.39.0|120.231.68.255|中国|0|广东省|茂名市|移动 120.231.69.0|120.231.89.255|中国|0|广东省|肇庆市|移动 120.231.90.0|120.231.94.255|中国|0|广东省|0|移动 120.231.95.0|120.231.134.255|中国|0|广东省|中山市|移动 120.231.135.0|120.231.141.255|中国|0|广东省|广州市|移动 120.231.142.0|120.231.161.255|中国|0|广东省|清远市|移动 120.231.162.0|120.231.186.255|中国|0|广东省|珠海市|移动 120.231.187.0|120.231.201.255|中国|0|广东省|江门市|移动 120.231.202.0|120.231.249.255|中国|0|广东省|深圳市|移动 120.231.250.0|120.231.255.255|中国|0|广东省|清远市|移动

    数据源补充 
    opened by lipanixx 2
Owner
Lion
Computer programmer based in SHENZHEN, China. Web system architecture, Machine learning, Natrue language processing, Information retrieval and Cloud Storage
Lion
This is a Location Registration For location registration

location-registration-system This is a Location Registration location-registration-system for users registration location if your location verifide Wi

masoudharooni 9 Feb 10, 2022
IPv4/IPv6 offline address database.IPv4/IPv6双栈地址离线数据库。IPv4 by 纯真网络,IPv6 by ZX Inc.

IPv4/IPv6 offline address database.IPv4/IPv6双栈地址离线数据库。IPv4 by 纯真网络,IPv6 by ZX Inc. Being updating every 5 days 每5天更新一次 IPv4 address locations by 纯真网络

null 0 Jan 26, 2022
High-performance, low-memory-footprint, single-file embedded database for key/value storage

LDBA - a fast, pure PHP, key-value database. Information LDBA is a high-performance, low-memory-footprint, single-file embedded database for key/value

Simplito 12 Nov 13, 2022
laminas-memory manages data in an environment with limited memory

Memory objects (memory containers) are generated by the memory manager, and transparently swapped/loaded when required.

Laminas Project 5 Jul 26, 2022
zend-memory manages data in an environment with limited memory

Memory objects (memory containers) are generated by the memory manager, and transparently swapped/loaded when required.

Zend Framework 16 Aug 29, 2020
High performance view templating API for PHP applications using tags & expressions inspired by Java JSTL and C compiler

View Language API Table of contents: About Expressions Tags Configuration Compilation Installation Unit Tests Examples Reference Guide About This API

Lucian Gabriel Popescu 0 Jan 9, 2022
Track any ip address with IP-Tracer. IP-Tracer is developed for Linux and Termux. you can retrieve any ip address information using IP-Tracer.

IP-Tracer is used to track an ip address. IP-Tracer is developed for Termux and Linux based systems. you can easily retrieve ip address information using IP-Tracer. IP-Tracer use ip-api to track ip address.

Rajkumar Dusad 1.2k Jan 4, 2023
php-vips is a binding for libvips 8.7 and later that runs on PHP 7.4 and later

PHP binding for libvips php-vips is a binding for libvips 8.7 and later that runs on PHP 7.4 and later. libvips is fast and needs little memory. The v

libvips 411 Jan 8, 2023
A PHP library for all things Minecraft: Java Edition

Phpcraft A PHP library for all things Minecraft: Java Edition. This project has been abandoned! The limited subset of 1.8.x - 1.15.x that has been imp

null 16 Nov 29, 2022
Michael Pratt 307 Dec 23, 2022