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,它給了我這個失業的產品經理一個快速學習程式設計的機會。