A high-performance IP intelligence and network connectivity diagnostic suite built as a unified Cloudflare Worker with Static Assets.
🚀 Website: https://ip.ii2d.com
Most IP lookup tools query a single remote server. my-ip-info cross-validates IP data across your self-hosted Cloudflare edge backend, public APIs (Cloudflare Trace, ipify, ipwho.is, IP.SB, ip.guide, SeeIP, icanhazip.com, IPIP.net), and browser WebRTC STUN candidates to detect VPN/proxy leaks, diagnose coordinate variations across geolocation databases, and measure real-time latency.
- ⚡ Unified Cloudflare Worker: Front-end (React SPA) and Edge API (Hono) deploy together under a single origin. Static assets are served via Cloudflare's edge cache (free & unlimited quota), while API requests run on the edge.
- ⚡ Zero-Latency Edge Intelligence: Automatically extracts city, region, coordinates, ASN (AS6327), ISP organization, and airport datacenter code (colo) directly from the edge TLS connection without external database lookups.
- 🗺️ Geolocation Convergence Map: Interactive dark Leaflet map plotting coordinates reported by each provider to visualize database discrepancies.
- 🛡️ Dual-Stack WebRTC & DNS Leak Inspector: Interrogates STUN ICE candidates (IPv4/IPv6) and resolves one-time nonce subdomains to uncover upstream DNS resolvers and detect VPN/proxy leaks.
- 📜 Local IP Connection History: 100% on-device timeline tracking with automatic deduplication, manual snapshots, and safe CSV / JSON data export.
- ⚙️ Custom Endpoints & Provider Toggles: Enable or disable specific public providers, or register user-defined private backend endpoints in in-app settings.
- ⏱️ Latency & Network Benchmark: Measures round-trip time (RTT) to global Anycast edge nodes.
- 📱 Progressive Web App (PWA): Installable directly from the browser on desktop and mobile with standalone window support, offline UI shell caching, and automatic refetching on network reconnect.
my-ip-info can be installed directly as a standalone desktop or mobile application without needing third-party app stores.
- Zero App Store Friction: Install immediately without having to search, download, or authenticate through the Apple App Store or Google Play Store.
- Cross-Platform Consistency: Provides a unified, native app experience across macOS, Windows, Linux, iOS, and Android from a single shared web standard.
- Fast App Launch & Offline Shell: Static app shell assets (HTML, CSS, JS, fonts, and icons) are pre-cached locally using Workbox Service Workers, delivering near-instant loading even on slow or intermittent network connections.
- Always-Fresh Network Diagnostics: Specifically architected with strict cache-busting and API bypass rules (navigateFallbackDenylist) so dynamic IP and geo lookups are never served from stale caches. Real-time window focus and network reconnect listeners automatically re-probe your IP when toggling VPNs or switching Wi-Fi networks.
- Desktop (Chrome / Edge / Brave / Opera): Click the Install icon in the browser address bar (or navigate to menu ...→ Install my-ip-info). The application will launch in its own dedicated, borderless desktop window and can be pinned to your Dock or Taskbar.
- Desktop (Safari on macOS Sonoma+): Go to File → Add to Dock.
- Mobile (iOS Safari): Tap the Share button (box with an upward arrow) → scroll down and tap Add to Home Screen.
- Mobile (Android Chrome): Tap the menu ⋮→ select Add to Home screen or Install app.
my-ip-info/
├── src/
│ ├── client/ # React SPA (components, hooks, styling)
│ ├── server/ # Cloudflare Worker entrypoint & Hono API (/api/v1/*, CLI detection)
│ └── shared/ # Shared TypeScript types and IP utilities
├── public/ # Static assets, favicon, redirects
├── test/ # Unit tests (node:test)
├── index.html # SPA entry HTML
├── vite.config.ts # Client build configuration
├── wrangler.toml # Unified Cloudflare Worker configuration with [assets]
└── Dockerfile # Standalone Node/Docker server image
pnpm install# Boot frontend (http://localhost:5173) and Cloudflare Worker (http://localhost:8787) concurrently
pnpm dev
# Or run services individually:
pnpm dev:client # Vite SPA with HMR (proxies /api to :8787)
pnpm dev:worker # Cloudflare Worker via Wrangler / workerd
pnpm dev:node # Standalone Node.js server (:3000)pnpm test # Run 34 unit tests across core, worker pipeline, and providers
pnpm test:coverage # Run tests with V8 code coverage report
pnpm typecheck # Validate TypeScript types without emit
pnpm lint # Check code against Biome rules
pnpm format:check # Verify code formattingDeploying requires zero environment variables:
# Build frontend and deploy unified worker
pnpm deployWrangler will authenticate via your browser or respect your standard CLOUDFLARE_API_TOKEN environment variable.
To bind a custom domain in your Cloudflare zone, uncomment the route in wrangler.toml:
routes = [
{ pattern = "ip.yourdomain.com", custom_domain = true }
]Cloudflare Workers will automatically configure the DNS record and provision SSL certificates with zero external tools needed.
To delete the deployed worker and its assets:
pnpm undeploy # or: npx wrangler deleteAll backend API routes are versioned under /api/v1:
MIT License. Contributions and PRs welcome!