1. Executive Summary: When Checkers Become Leakers
In cross-border business, remote engineering, and security testing, users routinely rely on IP diagnostic portals to verify network hygiene and proxy anonymity. However, through deep traffic analysis and AST deobfuscation across popular testing platforms, we uncovered a striking paradox: utilities marketed as privacy leak inspectors deploy silent probes that transmit visitor real public IPs to remote servers without explicit user interaction.
This benchmark evaluates four representative platforms (IPOK, ping0.cc, Whoer.net, and Scamalytics) across WebRTC handling, recursive DNS leakage, client fingerprinting, and backend retention, presenting empirical evidence to establish verifiable privacy engineering standards.
2. Core Comparative Matrix
| Evaluation Dimension | IPOK (ipok.io) | ping0.cc | Whoer.net | Scamalytics |
|---|---|---|---|---|
| WebRTC Handling | Local only, 0 upload | Silent POST to /ip/peer | Server-side collector | N/A (API only) |
| Trigger Mode | Explicit user click | Auto-fired on page load | Auto-fired on load | - |
| Real IP Persistence | WebRTC candidates not sent; standard traffic subject to rate-limit logs | Client sends IP & screen size to /ip/peer (server retention unstated) | Session linked | Enterprise logs |
| DNS Leak Engine | Self-hosted priority (300s logical TTL, no access logs); falls back to bash.ws on failure | Self-hosted, 50 queries | Self-hosted resolver | - |
| Client Fingerprinting | Local diagnostic reads only, 0 server profiling | 371KB probe (antidetect browser detection) | Canvas / System checks | No frontend probes |
| Third-Party Trackers | No 3rd-party ad/tracking scripts (sponsored cards & aggregate metrics only) | Custom /trackad2 | Ad networks, analytics | Standard web trackers |
3. Deep-Dive Reverse Engineering Evidence
3.1 WebRTC Physical IP Silent Exfiltration Pipeline
WebRTC's ICE mechanism issues UDP requests to STUN servers to discover Server Reflexive Candidates. When a visitor browses through a standard HTTP or SOCKS proxy without WebRTC shielding, UDP packets bypass the proxy layer, exposing the true residential IP directly to the STUN endpoint.
peer: function() {
const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection;
if (!RTCPeerConnection) return;
// 1. 指定其自建 STUN 节点穿透代理 NAT
const pc = new RTCPeerConnection({
iceServers: [{ urls: "stun:ping0.cc:3478" }]
});
pc.onicecandidate = (event) => {
if (event.candidate) {
const candidateIp = event.candidate.candidate.split(' ')[4];
// 2. 排除私网保留地址(10.x, 192.168.x 等)
if (candidateIp.indexOf('local') === -1 && !this.isreserve(candidateIp)) {
const winSize = window.innerWidth + '-' + window.innerHeight;
// 3. 异步向远端端点发送包含 candidate IP 与屏幕尺寸的 POST 请求
axios.post("/ip/peer", {
ip: candidateIp,
size: winSize
});
}
}
};
pc.createOffer({ offerToReceiveAudio: true })
.then(offer => pc.setLocalDescription(offer));
}Client network traces from October 2026 demonstrate that upon page load, frontend scripts query proprietary STUN servers and issue POST requests to /ip/peer containing non-reserved candidate IPs and screen metrics. It must be noted that client inspection proves parameters were transmitted to endpoints at that time, but cannot determine server-side retention periods or backend usage. Nonetheless, for visitors on unshielded proxies, this traffic transmits the real public IP to remote servers.
3.2 IPOK's Zero-Knowledge Local Processing Model
IPOK enforces strict physical boundaries when engineering WebRTC diagnostics:
- Explicit User Consent: No WebRTC handshake occurs on page load. Connections initialize exclusively when the user manually clicks 'Run Test'.
- Neutral Public STUN: Connects solely to Google and Cloudflare public STUN relays, maintaining zero proprietary STUN collectors.
- Client-Only DOM Evaluation: ICE candidate addresses reside strictly inside frontend browser memory to compare against the HTTP exit IP in the DOM. Network callbacks to IPOK servers remain strictly zero.
3.3 Data Minimization in Self-Hosted DNS Leak Infrastructure
DNS leak tests require authoritative nameservers (e.g. leak.ipok.io) to capture randomized subdomain lookups from recursive resolvers. Where others maintain persistent query logs, IPOK enforces an ephemeral architecture:
• Bounded TTL: Test IDs have a logical TTL of 300 seconds (inaccessible after expiry) and are lazily pruned during subsequent session operations.
• Zero Database Persistence: Session state lives purely in RAM without disk databases; service restarts permanently erase all transient memory.
• Caddy Zero-Access-Log: Upstream reverse proxy explicitly disables access logs, prohibiting retention of requester IPs and query timestamps.
Note: In production, self-hosted infrastructure responds by default; if unavailable, requests fall back to bash.ws for backward compatibility.
4. Defense Guide: Protecting Yourself from Rogue Diagnostic Sites
Regardless of which diagnostic website you visit, apply these defenses to harden your local environment:
- Enforce WebRTC Leak Protection in Browser: In Chrome/Edge, configure WebRTC IP Handling Policy to disable_non_proxied_udp (via policy or extension), in Brave select 'Disable non-proxied UDP', or in Firefox toggle media.peerconnection.enabled to false in about:config.
- Adopt Full-Route TUN Virtual Interfaces: Utilize system-wide TUN mode to capture all outbound UDP traffic, eliminating unproxied UDP socket leaks common in basic HTTP/SOCKS proxies.
- Inspect Network Panels: Press F12 to inspect network activities when visiting checkers; verify whether hidden POST requests are fired to endpoints like /ip/peer or /track.
5. Conclusion & Industry Recommendations
Network diagnostic tools must serve as allies defending transparency and security, not clandestine honeypots trading away visitor identities. IPOK calls for industry-wide adoption of zero-silent-exfiltration, local WebRTC evaluation, and bounded data retention standards, ensuring developers audit networks in an honest, verifiable environment.