VPN Detection Test
Check whether an IP address is a VPN exit, a proxy, or a privacy relay, and see which provider operates it when the evidence says so.
Verified, not guessed.
Most VPN checkers rely on static lists that go stale the moment a provider rotates its servers. GeoIPHub starts from the source: server lists pulled from the published APIs of 10 VPN providers: NordVPN, Mullvad, Surfshark, Private Internet Access, Windscribe, AirVPN, IVPN, PrivadoVPN, Riseup, and FastestVPN. When an exit matches, the response names the provider in detection.vpn_provider.
Before any IP is flagged, it is actively verified: real protocol handshakes on 25+ ports across 11 VPN and proxy protocols, including OpenVPN, WireGuard, IKEv2, PPTP, L2TP, Shadowsocks, SOCKS5, SOCKS4, and HTTP CONNECT. An IP that answers a WireGuard handshake is running WireGuard. That is evidence, not inference. Probes re-run every two days so verdicts stay current. WHOIS adds a third layer: RDAP records across all 5 regional registries are scanned for 46 VPN keywords.
The result is a verdict you can defend, with a vpn_confidence value from 0 to 100 attached to every answer.
Can you detect a VPN from an IP address?
Yes — not by seeing inside the tunnel, but by recognizing the exit. A VPN releases traffic onto the internet from a server, so the address you receive belongs to the VPN's infrastructure. That infrastructure is identifiable three ways, which is exactly what this test checks:
- It is on a provider's own server list. VPN apps need somewhere to connect, so providers publish their endpoints. An IP in one of those lists is a confirmed exit — and the test names the provider when it can.
- It sits on the wrong kind of network. VPN servers live in datacenter and hosting ranges, where real consumers essentially never browse from. A "home user" arriving from a hosting network is already anomalous.
- It answers like a VPN. A machine that completes an OpenVPN or WireGuard handshake is running that protocol — the difference between a guess and proof.
To check your own connection, paste your current IP into the test above. For the full mechanics — and why no single one of these signals is enough on its own — see what a VPN is and how to detect it and how VPN and proxy detection actually works.
Frequently asked questions
How does GeoIPHub know an IP is a VPN?
Will it tell me which VPN provider it is?
Is iCloud Private Relay treated as a VPN?
Should I block every VPN?
Every check, one API call.
The complete report for any IPv4 or IPv6 address: location, network, detections, risk score.
GET /v1/lookup/{ip}Your public IP, where it places you, and what every website can infer from it.
geo + asn + detectionA 0–100 risk score with the exact signals that produced it.
scoring.fraud_scoreVerify an IP against the official Tor Project exit list.
detection.is_torFind out if an IP belongs to a hosting provider or cloud platform.
detection.is_hostingNeed this at scale?
Get 1,500 free API lookups a day, every field included, no credit card. These tools run on the same endpoint you would ship to production.