在日常开发中,我们经常需要查询IP地址的位置信息,比如:
- 网站统计:统计用户的来源地,了解访问者分布情况;
- 安全防护:根据IP地址判断用户是否来自风险地区,加强安全防护措施;
- 物联网应用:根据IP地址定位设备,追踪设备位置等。
然而,网上提供的类似查询服务大多要么需要付费,要么功能受限,要么使用起来较为复杂。
今天,我想和大家分享一个超级简单的开源IP地址位置查询项目 - MyIP[1]。
一、简介
MyIP是一个简洁而实用的开源IP信息查看器,提供了多种功能,包括IP地址查询、网络连通性检查、WebRTC连接检测、DNS泄露检查、网速测试、MTR测试等等。
使用MyIP,我们可以轻松地查看自己的公网IP地址,并且可以方便地进行网络诊断或监控。
这个项目的独特之处在于,据作者称,其中70%的代码是通过ChatGPT自动生成的。这真是令人惊叹!
目前Github上面收获了3.3k star。
二、部署方式
该项目提供了3中部署方式。
1.在 Node 环境部署
确保你系统里已经有Node.js环境。
克隆代码到本地:
git clone https://github.com/jason5ng32/MyIP.git
安装依赖:
npm install
运行启动:
npm start
程序会运行在18966端口,自己可以根据实际情况修改的。
2.使用 Vercel
点击项目顶部的部署到 Vercel 按钮,即可完成部署。
3.使用docker部署
点击项目顶部的部署到 Docker 按钮,即可完成部署,又或者,直接输入下面的命令:
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest
4.环境变量说明
你可以不添加环境变量直接使用,但是如果你想使用一些高级功能,可以添加下面的环境变量:
变量名 | 是否必须 | 默认值 | 说明 |
PORT | 否 | 18966 | 程序运行的端口 |
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 归属地信息 |
KEYCDN_USER_AGENT | 否 | "" | KeyCDN 的 User Agent,用于通过 KeyCDN 获取 IP 归属地信息 |
CLOUDFLARE_API | 否 | "" | Cloudflare 的 API Key,用于通过 Cloudflare 获取 AS 系统的信息 |
VITE_RECAPTCHA_SITE_KEY | 否 | "" | Google reCAPTCHA 的 Site Key,用于在前端显示 reCAPTCHA 验证 |
RECAPTCHA_SECRET_KEY | 否 | "" | Google reCAPTCHA 的 Secret Key,用于在后端验证 reCAPTCHA 验证 |
三、使用体验
项目主页:
网络连通性测试:
WebRTC测试:
DNS泄露测试:
分流测试:
网速测试:
四、写到最后
MyIP是一个简洁实用的开源IP信息查看器,它提供了丰富的功能,包括IP地址查询、网络连通性检查、WebRTC连接检测、DNS泄露检查、网速测试、MTR测试等等。通过访问项目地址,您可以了解更多关于MyIP的详细信息和使用方法。
参考资料:
[1]MyIP: https://github.com/jason5ng32/MyIP