Skip to content

sihuangtech/ip-purity-checker

Repository files navigation

IPurity

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.

Features

  • 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

Tech Stack

  • Vite 8
  • React 19
  • TypeScript 6
  • lucide-react
  • React Simple Icons
  • pnpm

Local Development

pnpm install
pnpm dev

Build for production:

pnpm build

Preview the production build:

pnpm preview

Deployment

Vercel

  • Framework preset: Vite
  • Build command: pnpm build
  • Output directory: dist

Cloudflare Pages

  • Framework preset: Vite
  • Build command: pnpm build
  • Output directory: dist

Node.js Static Server

Build the static assets and serve dist with any static file server.

pnpm build
pnpm preview --host 0.0.0.0

Environment Variables

The first version works without API keys.

VITE_IP_PROVIDER=ipwho
VITE_ENABLE_OPTIONAL_PROVIDERS=false

Do 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 Architecture

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:

  1. Add a provider class with a stable id, label and lookup method.
  2. Return normalized data instead of exposing provider-specific response shapes to UI components.
  3. Use DetectionItem for each module state: not_configured, not_checked, clean, low, medium, high, critical or error.
  4. Keep secret-bearing requests on the server side.

Scoring Rules

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.

Privacy

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.

Roadmap

  • 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

Disclaimer

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.

License

MIT License. See LICENSE.

About

A privacy-friendly IP reputation and network hygiene checker for ASN, VPN, proxy, Tor, blacklist, DNS leak and WebRTC diagnostics.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors