MyIP README

The project's README from github.com/jason5ng32/MyIP. As one markdown file: README.md.

🧰 MyIP - A Better IP Toolbox

IPCheck.ing Banner

jason5ng32%2FMyIP | Trendshift

Mentioned in Awesome Self Hosted

GitHub Repo stars GitHub forks Docker Pulls

Website PWA

CodeQL Docker Build and Push CI

English | 简体中文 | 繁體中文 | Русский | Français | Português (BR)

An open-source, all-in-one IP toolbox: IP lookup from multiple sources, connectivity tests, WebRTC & DNS-leak detection, speed test, MTR, censorship checks, Whois, and more — self-hostable with one Docker command.

👉 Demo: https://ipcheck.ing

Feel free to bookmark the demo or deploy your own.

Deploy with Docker

👀 Features

🪪 Your IP & Identity

🕵️ Leaks & Privacy

📡 Network Tests

🔦 Lookup & Infrastructure

✨ Platform

📕 How to Use

Using Docker

One command and you're up:

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

Or click the "Deploy with Docker" button at the top of this page.

Deploying in a Node Environment

Make sure you have Node.js installed, then clone the code:

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

Install and build. This project uses pnpm — if you don't have it, install it first (npm ships with Node, so this command always works):

npm install -g pnpm
pnpm install && pnpm run build

Run:

pnpm start

The program will run on port 18966.

⚙️ Configuration

[!IMPORTANT] MaxMind GeoLite2 credentials are required. They power IP geolocation and ASN lookups — without them, the MaxMind source returns 503. They're free: → MaxMind Setup

[!WARNING] ALLOWED_DOMAINS is required on a real domain. It's the hostname allowlist for the backend API — without it, every request from a non-localhost domain gets 403. → Reverse Proxy & Domains

docker run -d -p 18966:18966 \
  -e MAXMIND_ACCOUNT_ID="YOUR_ACCOUNT_ID" \
  -e MAXMIND_LICENSE_KEY="YOUR_LICENSE_KEY" \
  -e MAXMIND_AUTO_UPDATE="true" \
  -e ALLOWED_DOMAINS="your-domain.com" \
  --name myip --restart always \
  jason5ng32/myip:latest

Everything else — optional API keys, security & rate limiting, logging, Sentry, the curl API domains — is documented in the Environment Variables reference.

📖 Documentation

Full guides live in the MyIP Docs Center: docs.ipcheck.ing

🤝 Contributing

Contributions are welcome! We keep a curated set of beginner-friendly tasks — each with exact file paths, acceptance criteria, and tests that guide you to a green build:

👩🏻‍💻 Advanced Usage

Proxy rules for checking your real IP and your proxy IP at the same time

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.2/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

💖 Sponsors

As an open source project, I'm very grateful to the following sponsors for their support:

1Password

Greptile

Sentry

GitBook

v.ps

Cloudflare Project Alexandria

📄 License

MIT © Jason Ng

MyIP (jason5ng32/MyIP)

Searching Database…

12.2K ·GitHub
What is this?MyIP is a self-hostable, all-in-one IP toolbox: it checks your IP and geolocation from multiple sources, tests for WebRTC and DNS leaks, runs IP quality and browser fingerprint checks, speed tests, global latency and MTR tests, Whois lookups, censorship checks, and more.
Is this a library or an app I deploy myself?It's a self-hosted web application you run yourself (via Docker or Node.js), not a CLI tool or library — it serves a browser UI with a Node backend.
How do I get it running?Deploy the official Docker image with one command (or click the 'Deploy with Docker' button), or clone the repo, install with pnpm, build, and run — the Node version starts on port 18966.
What do I need to configure before using it?Besides Node.js/pnpm for a manual install, you need free MaxMind GeoLite2 credentials, since they power IP geolocation and ASN lookups.
Any gotcha when exposing this on a real domain?If it's reachable on a real domain rather than localhost, you must set ALLOWEDDOMAINS as a hostname allowlist, or every request to the backend API gets rejected with a 403.
Can I install it like a regular app?The web UI is installable as a PWA on your phone and as a Chrome app on desktop, in addition to being self-hosted on any server that runs Docker or Node.js.
Where does my IP history and checklist data go?Your IP History and the 258-item security checklist's progress are stored only in your own browser, never sent to a server.
What exactly do the WebRTC and DNS leak tests show?WebRTC Detection reveals the IP exposed during WebRTC connections and whether your browser's privacy hardening is on, while DNS Leak Test shows which DNS endpoints actually resolve your queries — useful for spotting leaks when using a VPN or proxy.
Can I check if a site is blocked in other countries?Yes, the Censorship Check feature shows where a given website is blocked worldwide and by what method.
Can I share my diagnostic results with someone else?Yes, Shareable Reports turn your results into a read-only link with auto-expiry, plus AI-ready Markdown or JSON export.
Does it do more than just check my own connection?It also shows live Service Status for well-known providers like Claude, OpenAI, GitHub, and Cloudflare, and has an 'Earth Online' panel broadcasting global internet outage events.
Creator
jason5ng32
Size
778.9 MB
Stars
12.2K
Age
2y
Commits · 90 Days