根據(jù)ip地址獲得所在地區(qū)名稱,如:中國|0|北京|北京市|聯(lián)通。本地化部署,本地數(shù)據(jù)庫,無外網(wǎng)請求。
倉庫地址:https://gitee.com/jet-long/ip2region.git
git clone https://gitee.com/jet-long/ip2region.git
cd ip2region
composer install
# windows系統(tǒng)下啟動webman服務
php .\windows.php
# linux系統(tǒng)下啟動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系統(tǒng)上,不支持windows和mac系統(tǒng))
1、下載最新的發(fā)行版(https://gitee.com/jet-long/ip2region/releases/tag/v1.0.0)
2、解壓文件包
3、給程序文件增加可執(zhí)行權限
4、啟動程序:./ip2region start -d
3.此程序開放了一個api地址,傳入具體ip地址,返回對應的json格式數(shù)據(jù)
// 請求地址
http://localhost:9501/ip2region?ip=111.203.145.123
// 返回數(shù)據(jù)示例:
{
"code": 1,
"data": {
"ip": "111.203.145.123",
"region": "中國|0|北京|北京市|聯(lián)通",
"gap": 0.023193359375
},
"msg": "success",
"time": 1735889117
}
4.nginx添加站點配置域名,并轉(zhuǎn)發(fā)到webman服務
server {
listen 80;
server_name www.test.com;
index index.php index.html index.htm;
root /path/to/ip2region/public;
# 將請求轉(zhuǎn)發(fā)到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 結(jié)尾的文件
location ~ \.php$ {
return 404;
}
# 允許訪問 .well-known 目錄
location ~ ^/\.well-known/ {
allow all;
}
# 拒絕訪問所有以 . 開頭的文件或目錄
location ~ /\. {
return 404;
}
}
此項目用于有根據(jù)ip獲取地區(qū)名稱需求的項目,現(xiàn)在高德地圖接口需要收費,這個開源數(shù)據(jù)庫獲取有一點點不太準確,但是簡單的需求還是可以用。
有需要的朋友直接拿去用,已開源。
我都是直接把這個打包到項目里。。。沒想過分開部署。多一個步驟。。。