dev.club โ€” where best developers and top companies connect.

dev.club โ€” where best developers and top companies connect.Invite only

Request invite

๐Ÿงฐ 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

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.