Know what your IP says about you.
IPurity is an open-source, self-hostable IP purity checker for network reputation, proxy, VPN, Tor, hosting, blacklist, DNS leak and WebRTC leak diagnostics.
This project is designed as a transparent, educational and privacy-friendly network diagnostic tool. It is not a guide for bypassing platform risk controls.
Chinese documentation is available in README.zh.md.
- Public IP, country, region, city and timezone lookup
- ISP, organization, ASN number and ASN name display
- Heuristic network type classification: residential, mobile carrier, hosting or unknown
- Explainable 0 to 100 IP purity score
- Provider-ready VPN, proxy, Tor, hosting and blacklist detection modules
- DNS leak explanation module with extension points for self-hosted DNS checks
- Browser-side WebRTC candidate exposure detection
- Report page with status, evidence and practical recommendations
- Light and dark modes
- Privacy page and no-login default design
- Static deployment support for Vercel, Cloudflare Pages and ordinary Node.js hosting
- Vite 8
- React 19
- TypeScript 6
- lucide-react
- React Simple Icons
- pnpm
pnpm install
pnpm devBuild for production:
pnpm buildPreview the production build:
pnpm preview- Framework preset: Vite
- Build command:
pnpm build - Output directory:
dist
- Framework preset: Vite
- Build command:
pnpm build - Output directory:
dist
Build the static assets and serve dist with any static file server.
pnpm build
pnpm preview --host 0.0.0.0The first version works without API keys.
VITE_IP_PROVIDER=ipwho
VITE_ENABLE_OPTIONAL_PROVIDERS=falseDo not put commercial API secrets in VITE_ variables. Vite client variables are exposed to the browser. For paid providers, add a server-side proxy, Vercel Function, Cloudflare Worker or Node.js API endpoint.
Provider code lives in src/lib/providers.ts. The app currently includes a public ipwho.is provider for basic IP intelligence.
Detailed provider documentation: docs/providers.md.
Future providers can implement:
- IPinfo
- IPQualityScore
- AbuseIPDB
- IP2Location
- MaxMind
- Tor Exit Node List
- FireHOL IP Lists
Recommended extension pattern:
- Add a provider class with a stable
id,labeland lookup method. - Return normalized data instead of exposing provider-specific response shapes to UI components.
- Use
DetectionItemfor each module state:not_configured,not_checked,clean,low,medium,high,criticalorerror. - Keep secret-bearing requests on the server side.
Detailed scoring documentation: docs/scoring.md.
The score starts from a neutral baseline and applies weighted evidence:
- Residential or mobile carrier signals add points.
- Hosting or datacenter signals subtract points.
- Unknown network type subtracts a small amount because the result is less certain.
- WebRTC local or public candidate exposure subtracts points.
- Disabled or privacy-protected WebRTC can add a small amount.
- VPN, proxy, Tor, blacklist and DNS modules are neutral while unconfigured.
Score bands:
- 90-100: Very clean
- 70-89: Mostly clean
- 50-69: Medium risk
- 30-49: High risk
- 0-29: Very high risk
The score is an explainable diagnostic summary, not a universal reputation verdict.
Detailed privacy documentation: docs/privacy.md.
IPurity defaults to:
- No login
- No tracking ads
- No default analytics
- No default report storage
- Browser-local WebRTC detection
When the user clicks Check My IP, the browser queries the configured IP intelligence provider to learn the current public IP and related metadata. WebRTC candidate results are processed in the browser and are not uploaded by default.
Self-hosters control logging, provider choice, API keys and retention policies.
- Server-side provider proxy template for secret-bearing APIs
- Optional Tor exit node provider
- Optional blacklist provider for AbuseIPDB or FireHOL
- DNS leak test using a self-hosted authoritative DNS flow
- Shareable report export without storing user IP by default
- Provider health and confidence indicators
- Internationalization for English and Chinese UI
This tool is for reference only. Different websites and platforms may use different IP risk databases, detection rules and security policies. IPurity does not guarantee that its result will match any third-party platform.
This tool should not be used to bypass platform rules, abuse services or evade security detection. Users should comply with local laws and platform terms of service.
MIT License. See LICENSE.