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!