VPN & Proxy Check: Am I Using a VPN?
This vpn check scores your connection on five independent detection signals and returns one number from 0 to 100, so you can see whether you look like a VPN or proxy user to the rest of the internet. Nothing is uploaded: the page reads your own browser settings, asks one IP reputation provider about your address, and shows every signal next to the points it contributed.
How to tell if you are using a VPN right now
Look at the device first: macOS lists tunnels under System Settings → Network, Windows under Settings → Network & internet → VPN, and iOS and Android show a VPN badge in the status bar while a tunnel is up. Then run the score above, which does not trust your VPN client's own status light.
That second step matters. An app showing Connected reports on its own process, not on where your packets went; a tunnel that drops while the kill switch fails leaves the icon green for minutes. Checking what is my ip address from outside the app confirms the tunnel is really carrying traffic.
How websites actually detect a VPN
Almost all commercial detection starts with the address itself, not with anything clever in the browser. Every IP belongs to an autonomous system, and the ASNs of hosting companies — AWS, OVH, DigitalOcean, M247 — look nothing like those of consumer ISPs. A datacenter ASN is not proof of a VPN, but very few people browse from a rack, so residential-versus-datacenter is the strongest cheap signal available — and residential proxy services exist precisely to defeat it.
On top of the ASN come lists: known VPN exit ranges, public proxy pools, and the Tor project's published exit-node list. Vendors then add behaviour — how many accounts sign in from one address per hour, whether it reverse-resolves to vpn-node-42.provider.net — and contextual mismatches, such as a browser reporting Europe/Berlin on an IP in Dallas.
Two checks happen server-side, out of reach of any web page: a DNS resolver mismatch, where lookups resolve through a different network than your traffic exits, and TCP/MTU fingerprinting, where a tunnelled connection's packet size and option ordering differ from a native one. No JavaScript sees either, which is why this page's answer is narrower than a streaming service's.
What each signal on this page means
The score is a weighted average over only the signals that returned data. A check that fails has its weight dropped from the denominator rather than counted as clean, so a partial result stays honest — the row simply reads Unavailable.
IP reputation database — 50 points
The heaviest signal by far. Your address is looked up against a third-party IP intelligence provider, which flags VPN, proxy, Tor exit node, datacenter/hosting and mobile carrier. Tor alone contributes 30 points, VPN 20, proxy 15, datacenter 10, and the provider's risk score can lift it to the full 50. A hit means your address is on a published list, not that anyone inspected your traffic.
Timezone match — 15 points
Your browser timezone, read from Intl.DateTimeFormat(), is compared with the timezone the geolocation database assigns to your IP. Identical scores zero, different scores the full 15. Consumer VPNs create this mismatch constantly, because hardly anyone changes the system clock to match the exit country.
Browser language vs country — 10 points
The region tags in navigator.languages are compared to your IP's country code. It carries the lightest weight deliberately, being the least trustworthy signal here: an American on holiday in Italy fails it with no VPN, and a German running an English interface fails it at home.
Cloudflare edge / WARP — 15 points
This site sits behind Cloudflare, so the page reads its own edge trace and sees whether your request arrived through WARP, Cloudflare's consumer VPN service. The trace also names the edge datacenter that served you. It detects one product and stays silent for every other VPN, but when it fires it is close to certain.
WebRTC IP comparison — 10 points
A short STUN probe collects the public address WebRTC sees and compares it with the address your HTTP request came from. A difference means something is routing your web traffic but not your peer-to-peer traffic, which is what a leaking VPN looks like. For browser-by-browser fixes, run the webrtc leak test.
Detection is probabilistic, not a verdict
No score on this page proves anything, and it is not designed to. Every signal is circumstantial, and the same evidence fits more than one story. A residential VPN — a service routing you through real home addresses — produces a clean reputation result, a matching timezone if you pick a nearby exit, and no WebRTC mismatch. It scores low. A corporate laptop behind a company gateway, a university network, a carrier's CGNAT pool, iCloud Private Relay, or an ISP whose geolocation record still points at its head office can each score high with no VPN in the picture.
That symmetry is the caveat: clean and suspicious are both results a VPN and an ordinary connection can produce for the same underlying reason. The number says how much public evidence points at anonymising infrastructure, according to one vendor's database. It does not say whether you are anonymous, or what a given site will decide. Read the signal rows, not the headline figure.
Why a VPN can be working and still get detected
Moving your traffic and staying unrecognised are two different jobs, and the second is much harder. The encryption can be flawless while the exit IP sits in a range every detection vendor subscribed to last year: providers reuse a small pool of addresses across thousands of customers, and that concentration is visible from outside.
Three situations cover most reports of "it is on but they still know". The exit IP is listed, and only changing server helps. Your traffic is split, so a per-app VPN or a DNS leak exposes the real path. Or the site never needed your IP: once you are signed in, your account history and cookies already describe where you normally are. An ip address lookup tells you whether the exit belongs to a hosting range or a residential ISP.
What to do when a service blocks you
Change the exit first. Most blocks are per-address, so switching to another server — ideally in a different city — clears them more often than anything else. If the block follows you across several servers, the service is matching on your account: sign out, clear that site's cookies, and try again.
If you are flagged without using a VPN, check the usual false-positive causes: iCloud Private Relay, a privacy DNS profile, an ad-blocking or proxy extension, a corporate or campus gateway, carrier-pooled mobile data, or a device clock that no longer matches where you are.
What this check cannot tell you
It cannot tell you whether your provider keeps logs, or whether the exit server is physically where it claims — VPN companies routinely register addresses to one country and host the hardware in another. It cannot run DNS resolver correlation or TCP/MTU fingerprinting, which sit below what JavaScript reaches. And it reports one vendor's opinion of your address.
Frequently asked questions
My VPN says it's connected — how do I know it's actually working?
Check your public IP from outside the VPN app. The client's status light reports on its own process, so a dropped tunnel can still show green. Note your address with the VPN off, connect, reload, and compare: if the IP and its country did not change, the tunnel is not carrying traffic. The score above runs that check independently, plus a WebRTC comparison that catches a partially routed connection.
How do some websites know I'm using a VPN?
Mostly from your IP address, not from anything in your browser. Detection vendors keep lists of commercial VPN exit ranges, public proxies and Tor exit nodes, and they flag any address belonging to a hosting ASN rather than a consumer ISP. Secondary checks then confirm the guess: reverse DNS names that spell out the provider, how many accounts share the address, and timezone or language settings that disagree with the IP's country.
My connection is detected as a VPN while I'm not even using one — why?
Your IP's registered location is probably wrong. Mobile carriers and some ISPs register whole address blocks to a head office hundreds of miles away, so geolocation places you in the wrong city and detection tools read that mismatch as routed traffic. iCloud Private Relay, a corporate or campus gateway, an ad-blocking extension or a mis-set device clock produce the same false positive. Testing from a different network confirms it.
Why does Netflix say I'm using an unblocker or proxy when my VPN is on?
Netflix has blocklisted that exit IP. It compares your address against known VPN and hosting ranges, and a match stops playback regardless of whether the VPN is otherwise working perfectly. Switch to a different server, ideally in another city, because the block is per-address rather than per-provider. Netflix also reacts to a mismatch between your DNS and your IP, so a half-configured tunnel can trigger it on an otherwise clean address.
Can my employer monitor me on my personal laptop with a VPN if they know my real IP?
No — knowing your IP address is not enough to monitor your traffic. On a personal device running your own VPN, with no company software, management agent or work account enrolled, your employer sees nothing of your browsing. That changes the moment you connect through their VPN or gateway, use a managed device, or sign in with a work account on your machine: the traffic then crosses infrastructure they control and can log.
How do I know if my Mac has a VPN?
Open System Settings → Network and look for a VPN entry in the list on the left; anything configured shows there whether or not it is currently connected. Also check General → VPN & Device Management for a configuration profile installed by an app or employer, and watch the menu bar for a VPN status icon. On iPhone and Android, a VPN badge appears in the status bar whenever a tunnel is up.
There's no sign on the page that my VPN is on — can I tell from the browser?
Only indirectly. Nothing in a page's URL or layout changes when a VPN is active, and no browser API reports that a tunnel exists, so the browser-side evidence is limited to your public IP, the country it geolocates to, and mismatches such as system timezone versus IP location. That is exactly the set of signals this check reads. Your VPN app's own indicator is the other source, and it can be wrong.