一款由AI编写,简洁而实用的开源IP信息查看器
2024-07-17 11:03:50
次访问标签:nodejs
大家好,今天给大家分享一款用于查询和显示用户当前 IP 地址的轻量级项目MyIP
。
MyIP
提供了多种功能,包括IP地址查询、网络连通性检查、WebRTC连接检测、DNS泄露检查、网速测试、MTR测试等等。
使用MyIP,我们可以轻松地查看自己的公网IP地址,并且可以方便地进行网络诊断或监控。
项目介绍
MyIP
独特之处在于,据作者称,其中70%的代码是通过ChatGPT自动生成的,这显示了AI技术在自动化代码生成方面的潜力。
安装使用
在 Node 环境部署
确保你系统里已经有 Node.js 环境。
克隆代码:
git clone https://github.com/jason5ng32/MyIP.git
安装与编译:
npm install && npm run build
运行:
npm start
程序会运行在 18966 端口。
使用 Docker
直接输入下面的命令:
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'
services:
myip:
image: jason5ng32/myip
container_name: myip
restart: unless-stopped
ports:
- 18966:18966
然后执行下面的命令
# 新建文件夹 myip
mkdir -p /volume1/docker/myip
# 进入 myip 目录
cd /volume1/docker/myip
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
📚 环境变量
你可以不添加环境变量直接使用,但是如果你想使用一些高级功能,可以添加下面的环境变量:
变量名 | 是否必须 | 默认值 | 说明 |
---|---|---|---|
BACKEND_PORT |
否 | "11966" |
程序后端部分的运行端口 |
FRONTEND_PORT |
否 | "18966" |
程序前端部分的运行端口 |
SECURITY_RATE_LIMIT |
否 | "0" |
控制每 60 分钟一个 IP 可以对后端服务器请求的次数(设置为 0 则为不限制) |
SECURITY_DELAY_AFTER |
否 | "0" |
控制每 20 分钟一个 IP 的前 X 次请求不受速度限制,超过 X 次后会逐次增加延迟 |
SECURITY_BLACKLIST_LOG_FILE_PATH |
否 | "logs/blacklist-ip.log" |
路径设置。记录由 SECURITY_RATE_LIMIT 开启后,触发限制的 IP 列表 |
BING_MAP_API_KEY |
否 | "" |
Bing 地图的 API Key,用于展示 IP 所在地的地图 |
ALLOWED_DOMAINS |
否 | "" |
允许访问的域名,用逗号分隔,用于防止后端 API 被滥用 |
IPCHECKING_API_KEY |
否 | "" |
IPCheck.ing 的 API Key,用于获取精准的 IP 归属地信息 |
IPINFO_API_TOKEN |
否 | "" |
IPInfo.io 的 API Token,用于通过 IPInfo.io 获取 IP 归属地信息 |
IPAPIIS_API_KEY |
否 | "" |
IPAPI.is 的 API Key,用于通过 IPAPI.is 获取 IP 归属地信息 |
KEYCDN_USER_AGENT |
否 | "" |
使用 KeyCDN 时的域名,需包含 https 前缀。用于通过 KeyCDN 获取 IP 归属地信息 |
CLOUDFLARE_API |
否 | "" |
Cloudflare 的 API Key,用于通过 Cloudflare 获取 AS 系统的信息 |
MAC_LOOKUP_API_KEY |
否 | "" |
MAC 查询的 API Key,用于通过 MAC Lookup 获取 MAC 地址的归属信息 |
在 Node 环境里使用环境变量
创建环境变量:
cp .env.example .env
修改 .env 里的内容,比如:
BACKEND_PORT=11966
FRONTEND_PORT=18966
BING_MAP_API_KEY="YOUR_KEY_HERE"
ALLOWED_DOMAINS="example.com"
IPCHECKING_API="YOUR_KEY_HERE"
然后重新启动后端服务。
在 Docker 里使用环境变量
你可以在运行 Docker 的时候,添加环境变量,比如:
docker run -d -p 18966:18966 \
-e BING_MAP_API_KEY="YOUR_KEY_HERE" \
-e ALLOWED_DOMAINS="example.com" \
-e IPCHECKING_API="YOUR_TOKEN_HERE" \
--name myip \
jason5ng32/myip:latest
使用说明
在线体验地址:https://ipcheck.ing
- IP信息查询
- 网络连通性查询
- WebRTC 测试
- 高级工具
项目地址
https://github.com/jason5ng32/MyIP