TRANSPARENT BY DESIGN

Know where the
signals come from.

Daily public lists resolve known network matches locally. Unmatched IPs, and lookups without usable local data, are sent to our external detection integration.

Current dataset: 20261018T115610Z-8e0d9e4ac2bb
Checked and built 18 Oct 2026, 11:56 UTC. Scheduled refresh: daily.
SignalSourceCoverage
VPN & hostingX4BNet lists_vpnKnown VPN ranges and hosting ASN-derived IPv4/IPv6 networks. MIT licensed.
TorTor Project exit listPublished exit addresses, as supplied by the Tor Project.
Public proxiesIPLocate free-proxy-listPublished public proxy endpoints. MIT licensed.
Known crawlersGoogle and BingIP ranges published by the operators for their crawlers.
Fallback proxy checkisproxyip integrationThe queried IP is sent through our existing provider gateway when local VPN, hosting, Tor or public-proxy lists do not match, or local data is unavailable. The provider returns a proxy yes/no result; it does not populate the local category flags.

Updates that fail do not replace good data

Each download is parsed and checked for valid ranges, minimum size and unexpected changes. A complete new index is published atomically. If an update fails, the previous valid dataset remains available. If local data becomes older than 72 hours, it is not used for classification and the provider check is used instead. A provider error or invalid response produces a temporary-unavailability error, never a clean result.

What these signals cannot tell you

Source files may change more or less often than our daily download. The timestamp above is our successful build time, not a promise that every source changed that day.

Open-source attribution

X4BNet data © 2024 X4B (Mathew Heard). Public proxy data © 2025 IPLocate.io. Their MIT notices are included in our third-party notices.