Browser Fingerprint: What Timezone, Language and IP Mismatches Reveal
A timezone, language or font "mismatch" means that the environment info your browser reports contradicts the region of your exit IP. The most common case: traffic leaves through a proxy and the IP geolocates abroad, but the system timezone is still Asia/Shanghai, the first entry in the language list is zh-CN, and the installed fonts include Microsoft YaHei and PingFang. Any web page can read these directly. They are part of the browser fingerprint, and together they suggest roughly where you are, and also show that your network exit and your device are not in the same place.
This article first lists what a website can read, then explains why a proxy causes mismatches, and ends with a self-check procedure. It is only about reducing unnecessary exposure. It does not cover faking an environment, and it has nothing to do with bypassing any platform's risk controls or regional restrictions.
What environment info a website can read from your browser
None of the following APIs requires user permission. A page script can read them as soon as it loads:
| Category | Typical way to read it | What it shows |
|---|---|---|
| Timezone | Intl.DateTimeFormat().resolvedOptions().timeZone, new Date().getTimezoneOffset() | The IANA timezone name and UTC offset set on the system |
| Language | navigator.language, navigator.languages, the Accept-Language request header | Browser UI language and the ordering of preferred languages |
| Locale formatting | Intl.NumberFormat, toLocaleDateString() | Default formats for dates, numbers and currency |
| Fonts | Measure text width and height with Canvas or CSS and check, font by font, whether each exists | Which fonts are installed, which indirectly reflects the OS and locale |
| Hardware | navigator.hardwareConcurrency, screen.width/height, devicePixelRatio, the WebGL renderer string | CPU thread count, screen specs, GPU model |
| Automation traces | navigator.webdriver and similar | Whether the browser is controlled by an automation tool |
| Network | Exit IP, WebRTC candidate addresses, DNS resolution path | Where the network exits and whether a proxy is in use |
Each item alone carries little information. Put together, they form what is commonly called a browser fingerprint: with enough dimensions, the combination is enough to tell one device apart from a large number of others.
The first six categories come from the device. The last one comes from the network. A proxy changes only the network layer and leaves the device layer untouched, which is why mismatches appear.
Why timezone and language still disagree with your IP behind a proxy
A proxy changes the exit, not your system settings
Whether it is a browser proxy, a system proxy or a global VPN, what changes is where packets leave from. The timezone is an operating system setting, the language is a browser and system setting, and fonts are files installed on your machine. None of these travel over the network, so a proxy cannot touch them.
An example (hypothetical): a Windows PC used in Shanghai has its exit switched to a node on the US West Coast. The website sees:
- IP geolocation database: California, US;
- Timezone:
Asia/Shanghai, UTC+8; - Languages:
zh-CN, zh, en; - Fonts: "Microsoft YaHei" and "SimSun" are present;
- Browser round-trip latency clearly higher than expected for a visitor local to that IP.
Every item is correct. They just describe two different places.
Split routing and multiple exits make it messier
Many people use routing rules: domestic (mainland China) sites go direct, foreign sites go through the proxy. The same browser then shows a different IP to different sites, but the device info is the same set. If the rules don't cover WebRTC UDP traffic or DNS queries, a page may also see a second or third address. For how split tunneling works and its common pitfalls, see Split tunneling. For the difference between the two kinds of leaks, see DNS leaks vs WebRTC leaks.
What each kind of mismatch leaks
| Mismatch | Typical symptom | What leaks | Severity |
|---|---|---|---|
| IP region vs timezone | IP abroad, timezone UTC+8 | The device's actual timezone, from which a country or region can be roughly inferred | High, the easiest to read |
| IP region vs language | IP in Japan, preferred language zh-CN | The user's language habits; on its own this proves little, since Chinese speakers living abroad look the same | Medium |
| IP region vs fonts | Many Chinese fonts present | The system's language edition, and whether Chinese input methods or office software were ever installed | Medium |
| Page IP vs WebRTC IP | Two different addresses | The real exit that bypasses the proxy, and possibly the internal network address | High |
| Page IP vs DNS resolver | DNS goes through the local ISP | Your ISP and city | High |
| Browser round trip vs exit TCP round trip | Large gap between the two | Traffic passes through a relay and the exit is not near the device | Medium |
| Automation flag | webdriver is true | The browser is controlled by a script | Depends on context |
A language or font mismatch is perfectly normal on its own. Chinese users living abroad and developers in China who run an English-language OS both end up with an IP and language that disagree. The items that really matter are timezone, WebRTC and DNS, because they point straight at the actual location of the device or network.
How to check your browser environment with cdnping /ip
cdnping's IP and environment check puts all of the above on one page. Go through it in this order.
Step 1: Test once in your usual setup
Stay in the state you normally browse in (proxy on or off, whatever is typical for you), open /en/ip, and wait for all checks to finish. The page shows:
- Exit IP intelligence: 11 geolocation databases vote on the location and give a confidence level, and the page judges native IP vs broadcast IP, and datacenter vs residential;
- Mainland split-routing detection: it reads the client IP echoed back by mainland China CDNs such as NetEase, Tencent and Douyin, and decides which of "mainland split routing / global proxy / direct domestic connection" you are in;
- DNS leak and WebRTC leak: the addresses visible beyond the web page itself;
- Latency profile: browser round trip compared with the exit TCP round trip measured by Cloudflare;
- Timezone, language and fonts, hardware fingerprint, automation traces: the device-side info from the table above.
These fingerprints are computed locally and are not uploaded.
Step 2: Hide your IP and generate a result image
After the checks finish, you can generate a watermarked result image to keep on record or send to a colleague for joint troubleshooting. Turn on "Hide IP" before generating, so the image doesn't expose your exit address when you post it in a chat group or a ticket. Save one before changing any setting, as your baseline.
Step 3: Compare item by item
Compare the result image against the checklist below, line by line:
[ ] Does the country/region from the geolocation databases match the region implied by the timezone
[ ] Is the first language in the list the one you expect
[ ] Does the WebRTC row show only the page exit IP (or nothing)
[ ] Is the DNS resolver on the same network or in the same region as the exit IP
[ ] Does the mainland split-routing result match what you intended
[ ] Are the browser round trip and the exit TCP round trip close
[ ] Are the automation traces "not detected"
A mismatch doesn't necessarily need fixing. First ask yourself one question: does it matter to you if a website reads this item?
Step 4: Test again after each change
After every setting change, reopen /ip and generate a second result image to compare with the baseline. Change one thing at a time, otherwise you can't tell which change did the work.
How to reduce unnecessary exposure
The goal is for websites to receive less information that they don't need, not to disguise your device as being somewhere else. In order of priority:
- Fix network-layer leaks first. WebRTC and DNS leaks expose your real network location and rank highest. Follow DNS leaks vs WebRTC leaks, and if you use split routing, also check that your rules cover UDP and DNS.
- Use the browser's built-in fingerprint protection. The privacy or strict modes of some browsers limit or normalize Canvas, font enumeration and hardware info. Examples are the default settings of Tor Browser, Brave's fingerprint protection, and the strict mode of Firefox Enhanced Tracking Protection. With them on, a site often receives a set of values "that many people share", which lowers identifiability. The effect varies by version, so run /ip once before and once after enabling to see.
- Install fewer fonts you don't use. The font list is one of the more distinguishing items, and developer machines often carry many design and coding fonts. Removing the ones you don't need lowers identifiability without affecting daily use.
- Separate browser profiles. Use different browser profiles for work, personal use and debugging, so extensions and settings don't link your activity across contexts.
- Don't expect one change to solve everything. A fingerprint is a combination of features, and changing one item often creates a new inconsistency that stands out even more. This is also why this article does not recommend manually editing the timezone or language to "line up" with your IP.
When accessing AI services or other platforms, regional restrictions are governed by the provider's terms. Environment checks are for understanding what you expose, not for getting around platform rules. Please comply with the terms of service and local laws.
What websites do with this information
If you are a website developer, you can read this list from the other side. Timezone and language are commonly used for localization: showing times in the visitor's timezone and choosing the page language from Accept-Language are legitimate uses. Fingerprint-type information is mostly used for anti-fraud and risk control. If your own product reads these values, collect only the fields the business actually needs, and state it in your privacy policy. The cdnping /ip page computes fingerprints locally and doesn't upload them, for the same reason.
If you call overseas AI APIs from mainland China, troubleshooting the network environment is not only about privacy. Connection quality matters just as much. You can run the online speed test on the homepage to measure first-connect and round-trip time to 15 AI model APIs, or check the live probe results for each provider's endpoint on the API status page. AGI Plan is a commercial partner of cdnping. If you want a single endpoint for many models, AGI Plan (agiplan.dev) is an aggregation gateway compatible with the OpenAI and Anthropic API formats, billed as a monthly subscription in RMB. The site states that it is not an officially authorized channel. Plans are at agiplan.dev/pricing.
What to do next
- Open /en/ip, turn on "Hide IP", and generate a result image of your current environment to keep on file;
- Go through the checklist above and deal with the WebRTC and DNS items first;
- To understand how exit IP types differ, read Native IP vs broadcast IP;
- For the testing method and data sources, see Methodology.