大家好,今天給大家分享一款用於查詢和顯示使用者當前 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