一个简单高效的IP访问管理系统,用于记录和管理IP访问记录,支持地理位置显示和设备信息识别。

# 拉取镜像
docker pull zhoujie218/ipapi:latest
#删除容器
docker stop ipapi
docker rm ipapi
# 运行容器(数据持久化,要先安装后把数据库copy到你的映射目录)
docker run -d \
--name ipapi \
--restart always \
-p 8081:80 \
-v /root/docker/ipapi:/var/lib/mysql \
zhoujie218/ipapi:latest
# 运行容器
docker run -d \
--name ipapi \
--restart always \
-p 8081:80 \
zhoujie218/ipapi:latest
支持的标签:
latest: 最新版本YYYYMMDD-HHMM: 指定版本(北京时间)支持的架构:
数据持久化:
/var/lib/mysqlCREATE DATABASE ipapi CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql -u your_username -p ipapi < create_table.sql
可以直接导入 sql/create_table.sql
编辑 config.php,设置数据库连接信息:
$db_host = "localhost:3306";
$db_user = "your_username";
$db_pwd = "your_password";
$db_database = "ipapi";
chmod 755 *.php
chmod 644 *.dat
如果您想自己构建 Docker 镜像:
# 克隆仓库
git clone https://github.com/vbskycn/ipapi.git
cd ipapi
# 构建镜像
docker build -t ipapi .
# 运行容器
docker run -d -p 80:80 -v mysql_data:/var/lib/mysql ipapi
创建 docker-compose.yml:
version: '3'
services:
ipapi:
image: zhoujie218/ipapi:latest
ports:
- "80:80"
volumes:
- mysql_data:/var/lib/mysql
restart: unless-stopped
volumes:
mysql_data:
运行:
docker-compose up -d
请在首次登录后立即修改密码!
发送POST请求到check_ip.php记录IP访问:
curl -X POST http://your-domain/index.php
发送GET请求到check_ip.php验证IP是否允许访问:
curl http://your-domain/index.php
php集成
// 添加 IP 检查的 POST 请求
$check_ip_url = 'https://your-domain/index.php';
$post_data = array(
'ip' => $ip,
'user_id' => $name,
'device_id' => $androidid
);
$headers = array(
'X-Forwarded-For: ' . $ip,
'X-Real-IP: ' . $ip,
'Client-IP: ' . $ip
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $check_ip_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 添加自定义头部
$response = curl_exec($ch);
curl_close($ch);
// 记录日志
error_log("IP check response for user $name (IP: $ip): " . $response);
检查数据库配置
确认数据库服务是否运行
纯真IP数据库文件,dat数据非exe安装包
下载直链
https://raw.githubusercontent.com/adysec/IP_database/main/qqwry/qqwry.dat
国内下载直链
https://raw.gitmirror.com/adysec/IP_database/main/qqwry/qqwry.dat
MIT License
作者:周杰 联系方式:[email protected]
欢迎提交问题和建议!
Content type
Image
Digest
sha256:4b49e6f62…
Size
629.5 MB
Last updated
almost 2 years ago
docker pull zhoujie218/ipapi