[–] [S] 2 points 2 days ago

Fair question. No, correct matters more. "At this speed" just meant I couldn't have built it alone in my spare time this fast.

For a page like this, being wrong is the real failure: if it says you're fine when your WebRTC or time zone is leaking, that's worse than no page at all. That's part of why the code is public under MIT: https://github.com/yt1988/who-are-you. If you or anyone spots a check that reports the wrong thing, an issue with your browser and VPN setup is the most useful thing you can send me, and I'll fix it.

  • source
  • parent
  • context
  • [–] [S] 1 point 2 days ago (1 child)

    Fair enough, and thanks for the straight answer rather than just a downvote. Point taken: I won't post it to more general communities here. If I share anything again it'll be somewhere that's explicitly fine with AI-assisted projects.

  • source
  • parent
  • context
  • [–] [S] 5 points 2 days ago

    Yep, webkay and pages like it are where the idea comes from, nothing new about the basic checks. What I tried to add is the comparison part: does your timezone and language match your exit IP, does traffic leave through a different exit when a proxy splits it, and which of your values are rare. If the older pages already cover what you need, no reason to switch.

  • source
  • parent
  • context
  • [–] [S] -3 points 2 days ago (2 children)

    Honestly, not at this speed. I can read and fix the code, and I decide what the page checks and how it handles data, but a lot of it was written with an AI assistant. That's why I said so in the post. If that's a dealbreaker for you, I get it.

  • source
  • parent
  • context
  •  

    I've been testing what a website can still tell about a visitor who's on a VPN, and the IP turns out to be the least interesting part. The things that kept giving people away in my tests:

    • Time zone and language that don't match the exit IP. A Frankfurt exit with an Asia/Shanghai clock and zh-CN as the first language stands out.
    • WebRTC handing out a local or real address, depending on the browser and the VPN client.
    • Exits that differ per destination. With split tunneling or a proxy app, some sites see your home ISP and others see the VPN.
    • The connection itself. The TCP and TLS fingerprint can say "this is a proxy" or name a different OS than your User-Agent claims.
    • Canvas, fonts and GPU, which add up to a fingerprint that stays the same whichever server you pick.

    I put these checks on one page: https://who.1ms.dog/. It's free, no account. Disclosure: I'm the author (香蕉痞 Yang), it's part of my 1ms.dog network-tools site, and the page itself isn't open source yet. The checks run in your browser. The servers don't keep a log or your IP, only anonymous per-value counters (used to show how rare your values are), and a "Don't count me" switch or Global Privacy Control turns those off. AI helped me write the code and this English text.

    I'm curious what people here run. Does your setup pass the time zone and WebRTC checks, or do you just accept that and use a hardened browser? If a check looks wrong or misleading, tell me and I'll fix it.

    [–] [S] 4 points 2 days ago

    Thanks! If you want quick wins: the biggest signals are usually WebRTC leaking a local or real IP behind a VPN, a timezone or language that doesn't match your exit IP, and a very unique canvas/font fingerprint. Firefox with resistFingerprinting, or the Tor/Mullvad Browser, cuts most of that down.

  • source
  • parent
  • context
  • [–] [S] 2 points 2 days ago*

    Fair point, and that's why the post says AI helped. I used it for a lot of the code and the English text. What the page checks, and how it handles data (checks run in the browser, no IP or full fingerprint kept, only anonymous per-value counters that 'Don't count me' or GPC turns off), was my call, and so is any bug you find in it.

  • source
  • parent
  • context
  • [–] [S] 2 points 2 days ago (3 children)

    Fair question. The account is new (made it this week), but it's a real person: I'm the author of the page and said so in the post. I'm not running other accounts here, and I'll stick around to answer questions or take criticism. If posting your own tool in c/webdev feels off-topic, tell me and I'll keep it to comments.

  • source
  • parent
  • context
  •  

    I'm the author of this page, so take this as a "here's what I built and what I learned" post rather than a neutral review.

    Who Are You shows what any website can read about a visitor without a single permission prompt, then writes it back as a plain-language portrait ("you're on X, in time zone Y, your DNS resolver is in Z..."). It currently reads 118 signals, split into what the server sees from the request and what JavaScript sees in the page.

    A few things from building it that might be useful to other web devs:

    • The server half is bigger than people expect. Before any JS runs, the request already carries IP, ASN, approximate city and coordinates, the IP's time zone, TLS version and HTTP protocol. On Cloudflare a lot of that comes straight from request.cf. Comparing that with what the page reports (system time zone, navigator.languages) is where most "you're using a proxy" verdicts come from.
    • Spoofing extensions only change what JS reads. An extension that overrides the user agent or time zone patches navigator in the page, but the request headers stay the same, and a Web Worker often still reads the original values. Comparing the window with a Worker catches a lot of tampering.
    • Fingerprint bits aren't independent. A 4K screen and a high-end GPU tend to come together, so the page doesn't multiply per-signal rarity. It counts the whole fingerprint against anonymous aggregate counts (no IP, no full fingerprint, no per-visit record).
    • Some leaks aren't in the browser at all. WebRTC and DNS leaks, a direct-vs-proxied split, the extra round trip a proxy adds, and the TCP/TLS fingerprint of whatever actually wrote the packets. Changing the user agent doesn't touch any of those.

    Each finding comes with a short "how to fix", and there's a mode for people who only care about privacy rather than appearing to be somewhere else.

    Link: https://who.1ms.dog/ (also in zh, ja, ko, es, fr, de, pt, ru). It's part of the 1ms.dog set of free network tools. The main repo is public (github.com/yt1988/1ms.dog), but the code for this page isn't published yet, so I'm not calling it open source.

    Disclosure: I'm 香蕉痞 Yang, I made it, and I used an AI assistant to help with the English. If you find a signal it reads wrong, or a check I'm missing, I'd really like to hear it.

     

    Disclosure first: I'm the author of this page (香蕉痞 Yang), and I used an AI assistant to help write this post. It's free, no account, no ads.

    I kept getting asked "why does site X still recognise me when I'm on a VPN?", so I built a page that shows the answer from the website's side. It reads what a normal site can read from your browser without any permission prompt (118 signals: timezone vs. IP location, languages, fonts, GPU/canvas, screen, network, etc.), then writes it up as one plain paragraph, the kind of profile a tracker could build.

    The part I find most useful is the contradiction checks: WebRTC leaks, DNS leaks, and mismatches such as a US exit IP with an Asia/Shanghai timezone and zh-CN fonts, which is usually what gives away a VPN, proxy or a spoofed user agent.

    Privacy notes, since this is the right crowd to ask: no IP is stored, only anonymous counts of how common each value is (used for the "how unique are you" part). The page itself is not open source yet; the wider 1ms.dog network toolset it belongs to is MIT on GitHub (yt1988/1ms.dog).

    Link: https://who.1ms.dog/

    Genuinely curious what people here see. Do Tor Browser / Mullvad Browser / LibreWolf with resistFingerprinting come out looking "common", and are there signals you think I'm missing or over-weighting?