English · 简体中文
A browser-based network diagnostics suite for inspecting IP addresses, routing behavior, CDN edges, DNS egress, and WebRTC connectivity.
Live demo: ip.bojin.co
- Local IP — compare IPv4 and IPv6 results, location, ASN, and reachability latency.
- Split routing — inspect which egress path is used for domestic and global services.
- Multi-egress scan — test a large public WebSocket node list with configurable concurrency, pause/resume controls, retries, and export.
- CDN edge lookup — identify edge nodes exposed by major CDN providers.
- DNS egress lookup — observe the public addresses and locations of DNS resolvers.
- WebRTC UDP — collect public
srflxcandidates from multiple STUN services.
The interface supports English and Simplified Chinese, light and dark themes, selectable accent colors, responsive layouts, and per-page auto-start preferences.
- TanStack Start and React
- Cloudflare Workers and the Cloudflare Vite plugin
- TypeScript, Vite, Bun, and Biome
- TanStack Virtual for the large multi-egress result set
Bun is required.
bun install
bun run devThe development server runs at http://localhost:3000/.
bun run test
bun run check
bun run buildbunx wrangler login
bun run deployNo KV, D1, R2, or other storage binding is required. The deployment settings are defined in wrangler.jsonc.
Most probes run directly in the visitor's browser so the results represent that browser's network path. The same-origin /api/client endpoint reads Cloudflare request metadata for the visitor IP result. Probe results are kept in memory; only interface preferences are stored locally.
Third-party availability, CORS policies, rate limits, IPv6 support, WebRTC support, and the visitor's network can affect individual results. See docs/architecture.md for implementation boundaries and failure handling.
This project recreates the core experience of ip.skk.moe. Thanks to its author for the original work.