MyIP
v4.3.2
?
查看快捷方式列表。确保您已安装 Node.js。
克隆代码:
git clone https://github.com/jason5ng32/MyIP.git
安装和构建:
npm install && npm run build
跑步:
npm start
该程序将在端口 18966 上运行。
单击顶部的“部署到 Docker”按钮完成部署。或者,使用以下 shell:
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest
您可以在不添加任何环境变量的情况下使用该程序,但如果您想使用一些高级功能,可以添加以下环境变量:
变量名 | 必需的 | 默认值 | 描述 |
---|---|---|---|
BACKEND_PORT | 不 | "11966" | 程序后端部分运行端口 |
FRONTEND_PORT | 不 | "18966" | 程序前端部分的运行端口 |
SECURITY_RATE_LIMIT | 不 | "0" | 控制IP每60分钟可以向后端服务器发出的请求数量(设置为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 密钥,用于在地图上显示 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 | 不 | "" | API Key for MAC Lookup,用于获取MAC地址信息 |
VITE_GOOGLE_ANALYTICS_ID | 是的 | "" | Google Analytics ID,用于跟踪用户行为 |
VITE_CURL_IPV4_DOMAIN | 不 | "" | 为用户提供 CURL API 的 IPv4 域 |
VITE_CURL_IPV6_DOMAIN | 不 | "" | 为用户提供 CURL API 的 IPv6 域 |
VITE_CURL_IPV64_DOMAIN | 不 | "" | 为用户提供CURL API的双栈域 |
请注意,如果缺少任何 CURL 系列环境变量,则不会启用 CURL API。
创建环境变量:
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 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
如果您使用代理进行 Internet 访问,请考虑将此规则添加到您的代理配置中(根据您的客户端进行修改)。此设置可让您检查真实 IP 和使用代理时的 IP:
# IP Testing
IP-CIDR,1.0.0.1/32,Proxy,no-resolve
IP-CIDR6,2606:4700:4700::1111/128,Proxy,no-resolve
DOMAIN,4.ipcheck.ing,DIRECT
DOMAIN,6.ipcheck.ing,DIRECT
# Rule Testing
DOMAIN,ptest-1.ipcheck.ing,Proxy1
DOMAIN,ptest-2.ipcheck.ing,Proxy2
DOMAIN,ptest-3.ipcheck.ing,Proxy3
DOMAIN,ptest-4.ipcheck.ing,Proxy4
DOMAIN,ptest-5.ipcheck.ing,Proxy5
DOMAIN,ptest-6.ipcheck.ing,Proxy6
DOMAIN,ptest-7.ipcheck.ing,Proxy7
DOMAIN,ptest-8.ipcheck.ing,Proxy8
2.0版本发布的时候,我说过这个程序70%的代码不是我写的,而是ChatGPT写的。经过大约 90 次交互,加上一些小的手动调整,整个代码库完成了。
当然,架构和UI还是需要我自己设计。
随着3.0版本及后续版本的发布,借助ChatGPT编写的代码比例逐渐下降,目前估计在40%到50%之间。相反,在这个过程中,我从对JavaScript和Vue一无所知,到能够看懂大部分JS代码,现在可以自己写一些了。
感谢AI,它给了我这个失业的产品经理一个快速学习编程的机会。