WebRTC leak test
WebRTC can leak your real IP even when you are connected to a VPN. This test runs a real peer connection in your browser, lists every IP the browser exposes, and explains what each one means.
See which IPs your browser leaks via WebRTC
We open a real WebRTC peer connection and read every ICE candidate the browser generates. No data leaves your device — the test runs entirely in this tab.
Click Run test to start. Results appear below within a few seconds.
More tools
Frequently asked questions
What is a WebRTC leak?
WebRTC is a browser feature for real-time audio, video, and data — used by Google Meet, Zoom web, Discord, and many video-call apps. To establish a peer connection, the browser collects every IP address it can reach the network on, including local network IPs and (in some configurations) your real public IP even when you are connected to a VPN. Any web page can ask the browser for these candidates, which is why this is called a "leak".
How does this WebRTC leak test work?
Click "Run test" and your browser opens a real WebRTC peer connection in this tab against a public STUN server. Every candidate the browser produces is read out and categorised: public IPv4, public IPv6, private network IPs, and mDNS hostnames. None of the data leaves your device — the test runs entirely in your browser and is read back to you on the same page.
I see a public IP — is that bad?
Not necessarily. If you are not on a VPN, your public IP is already visible to every site you visit, so WebRTC showing it is no extra leak. The real concern is when you are on a VPN and WebRTC shows a different public IP than the apparent one — that is your real IP leaking around the tunnel, and any site can grab it.
Should I disable WebRTC?
Disabling WebRTC stops the leak but also breaks every video-call site you use. A better approach is a VPN that prevents the leak in the first place — NordVPN routes WebRTC traffic through the tunnel and blocks the real-IP STUN responses. Browser extensions like uBlock Origin can also disable non-proxied WebRTC for users who never use video-call sites.
What are the .local hostnames I see?
Modern browsers (Chrome, Firefox, Safari) replace your local IP addresses with random "mDNS" hostnames — random strings that end in .local — by default. This means web pages can still establish peer connections inside your network, but cannot read your actual local IP. It is the right privacy default and is not a leak.
Why does Firefox show different results from Chrome?
Each browser implements WebRTC slightly differently. Firefox tends to expose more candidates by default but also has the most granular privacy controls (about:config: media.peerconnection.ice.no_host = true). Chrome's default mDNS obfuscation is more aggressive. Safari is the most restrictive and often produces no public IP at all.