大家好,今天給大家分享一款用於查詢和顯示使用者當前 IP 地址的輕量級專案MyIP

一款由AI編寫,簡潔而實用的開源IP資訊檢視器

MyIP提供了多種功能,包括IP地址查詢、網路連通性檢查、WebRTC連線檢測、DNS洩露檢查、網速測試、MTR測試等等。

使用MyIP,我們可以輕鬆地檢視自己的公網IP地址,並且可以方便地進行網路診斷或監控。

專案介紹

MyIP獨特之處在於,據作者稱,其中70%的程式碼是透過ChatGPT自動生成的,這顯示了AI技術在自動化程式碼生成方面的潛力。

一款由AI編寫,簡潔而實用的開源IP資訊檢視器

安裝使用

在 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資訊查詢

一款由AI編寫,簡潔而實用的開源IP資訊檢視器

  • 網路連通性查詢

一款由AI編寫,簡潔而實用的開源IP資訊檢視器

  • WebRTC 測試

一款由AI編寫,簡潔而實用的開源IP資訊檢視器

  • 高階工具

一款由AI編寫,簡潔而實用的開源IP資訊檢視器

專案地址

https://github.com/jason5ng32/MyIP