# ip2region **Repository Path**: jet-long/ip2region ## Basic Information - **Project Name**: ip2region - **Description**: 根据ip地址获得所在地区名称,如:中国|0|北京|北京市|联通。本地化部署,本地数据库,无外网请求 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-01-03 - **Last Updated**: 2025-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ip2region #### 介绍 根据ip地址获得所在地区名称,如:中国|0|北京|北京市|联通。本地化部署,本地数据库,无外网请求。 #### 软件架构 1. 开发框架:webman,PHP版本在 8.0以上 2. 扩展来源:https://gitee.com/lionsoul/ip2region #### 使用说明 1. 可拉代码自己根据代码运行 ```html git clone https://gitee.com/jet-long/ip2region.git cd ip2region composer install # windows系统下启动webman服务 php .\windows.php # linux系统下启动webman服务(加 -d是后台运行) php webman start -d # 打包为二进制文件(打包后在build目录下) php -d phar.readonly=0 ./webman build:bin # 指定打包的php版本 php -d phar.readonly=0 ./webman build:bin 8.1 ``` 2. 【推荐】直接下载压缩包运行二进制文件(此二进制文件为webman自带功能打包,打包后的文件目前只支持运行在x86_64架构的linux系统上,不支持windows和mac系统) ``` 1、下载最新的发行版 2、解压文件包 3、给程序文件增加可执行权限 4、启动程序:./ip2region start -d ``` 3. 此程序开放了一个api地址,传入具体ip地址,返回对应的json格式数据 ```javascript // 请求地址 http://localhost:9501/ip2region?ip=111.203.145.123 // 返回数据示例: { "code": 1, "data": { "ip": "111.203.145.123", "region": "中国|0|北京|北京市|联通", "gap": 0.023193359375 }, "msg": "success", "time": 1735889117 } ``` 4. nginx添加站点配置域名,并转发到webman服务 ```nginx server { listen 80; server_name www.test.com; index index.php index.html index.htm; root /path/to/ip2region/public; # 将请求转发到webman location ^~ / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_http_version 1.1; proxy_set_header Connection ""; if (!-f $request_filename){ proxy_pass http://127.0.0.1:8703; } } # 拒绝访问所有以 .php 结尾的文件 location ~ \.php$ { return 404; } # 允许访问 .well-known 目录 location ~ ^/\.well-known/ { allow all; } # 拒绝访问所有以 . 开头的文件或目录 location ~ /\. { return 404; } } ```