/MyIP

The best IP Toolbox. Easy to check what's your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability and more! || 🇨🇳 可能是最好用的IP工具箱。轻松检查你的 IP,IP 地理位置,检查DNS泄漏,检查 WebRTC 连接,速度测试,ping 测试,MTR测试,检查网站可用性等等。

Primary LanguageVueMIT LicenseMIT

🧰 MyIP - A Better IP Toolbox

GitHub Repo stars GitHub forks Website PWA GitHub license

Windows-image MacOS-image Linux-image

🇺🇸 English | 🇨🇳 简体中文 | 🇫🇷 Français

👉 Demo: https://ipcheck.ing

Notes: You can use my demo for free, and you can also deploy it yourself.

Deploy with Vercel Deploy with Docker

👀 Main Features

  • 🖥️ View Your IPs: Detects and displays your local IP, sourcing from multiple IPv4 and IPv6 providers.
  • 🕵️ IP Information: Presents detailed information for all IP addresses, including country, region, ASN, geographic location, and more.
  • 🚦 Availability Check: Tests the accessibility of various websites, such as Google, GitHub, YouTube, ChatGPT, and others.
  • 🚥 WebRTC Detection: Identifies the IP address used during WebRTC connections.
  • 🛑 DNS Leak Test: Shows DNS endpoint data to evaluate the risk of DNS leaks when using VPNs or proxies.
  • 🚀 Speed Test:Test your network speed with edge networks.
  • 🌐 Global Latency Test: Performe lantency tests on servers located in different regions around the world.
  • 📡 MTR Test: Perform MTR tests on servers located in different regions around the world.
  • 🌗 Dark Mode: Automatically toggles between dark and daylight modes based on system settings, with an option for manual switching.
  • 📱 Minimalist Mode: A mobile-optimized mode that shortens page length for quick access to essential information..
  • 🔍 Search IP Information: Provides a tool for querying information about any IP address.
  • 📲 PWA Supported:Can be added as a desktop app on your phone as well as a Chrome app on your computer.
  • ⌨️ Keyboard Shortcuts: Supports keyboard shortcuts for all functions, press ? to view the shortcut list.
  • 🌍 Based on availability test results, it indicates whether global internet access is currently feasible.
  • 🇺🇸 🇨🇳 🇫🇷 English, Chinese, and French support.

📕 How to Use

There are 3 Ways to deploy:

Deploying in a Node Environment

Make sure you have Node.js installed.

Clone the code:

git clone https://github.com/jason5ng32/MyIP.git

Install:

npm install

Build:

npm run build

Run:

npm start

The program will run on port 18966.

Using Vercel

Click the 'Deploy to Vercel' button at the top to complete the deployment.

Using Docker

Click the 'Deploy to Docker' button at the top to complete the deployment. Or, use the following shell:

docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest

📚 Environment Variable

You can use the program without adding any environment variables, but if you want to use some advanced features, you can add the following environment variables:

Variable Name Required Default Value Description
PORT No 18966 The port on which the program runs
BING_MAP_API_KEY No "" API Key for Bing Maps, used to display the location of the IP on a map
ALLOWED_DOMAINS No "" Allowed domains for access, separated by commas, used to prevent misuse of the backend API
IPChecking_API_KEY No "" API Key for IPCheck.ing, used to obtain accurate IP geolocation information
IPINFO_API_TOKEN No "" API Token for IPInfo.io, used to obtain IP geolocation information through IPInfo.io
KEYCDN_USER_AGENT No "" User Agent for KeyCDN, used to obtain IP geolocation information through KeyCDN
CLOUDFLARE_API No "" API Key for Cloudflare, used to obtain AS system information through Cloudflare
VITE_RECAPTCHA_SITE_KEY No "" Google reCAPTCHA's Site Key, used to display reCAPTCHA verification on the frontend
RECAPTCHA_SECRET_KEY No "" Google reCAPTCHA's Secret Key, used to verify reCAPTCHA verification on the backend

Using Environment Variables in a Node Environment

Create environment variables:

cp .env.example .env

Modify .env, and for example, add the following:

PORT=18966
BING_MAP_API_KEY="YOUR_KEY_HERE"
ALLOWED_DOMAINS="example.com"
IPChecking_API="YOUR_KEY_HERE"

Then restart the backend service.

Using Environment Variables in Vercel

Please refer to the content in .env.example and add it to the environment variables in Vercel.

Using Environment Variables in Docker

You can add environment variables when running Docker, for example:

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

👩🏻‍💻 Advanced Usage

If you're using a proxy for internet access, consider adding this rule to your proxy configuration (modify it according to your client). This setup lets you check both your real IP and the IP when using the proxy:

# IP Testing
IP-CIDR,1.0.0.1/32,DIRECT,no-resolve
IP-CIDR6,2606:4700:4700::1111/128,DIRECT,no-resolve
DOMAIN-SUFFIX,ipify.org,Proxy

😶‍🌫️ Additional Notes

70% of the code for this program was not written by me, but generated through ChatGPT. After about 90 rounds of back-and-forth and some minor manual adjustments, all the code was completed.

🌟 Star History

Star History Chart