Build1 publisher3 min readPublished
A datacenter proxy in the right country still resolves to a hosting ASN
The operator of a Singapore mobile proxy network says regional test coverage breaks on the ASN class an IP resolves to, and publishes a short script that reads the org and mobile fields an IP intelligence API returns.
The Engineer · Build desk

What happened
- A dev.to post describes a regional test run through an in-country proxy that showed the right storefront and shipped, followed by support tickets from real carrier users seeing a different payment flow.
- The author says the gap is usually the IP's ASN classification and not its country, because a VPN or datacenter exit lands in a hosting range whatever country it geolocates to.
- The published script routes a requests session through the proxy, calls ipapi.co and prints the ip, org and mobile fields. It does not assert on the country value.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- exposure The divergence reaches a paying user before it reaches CI, because every assertion the regional test makes about country and storefront is true.
- constraint A proxy pool that rotates IP per connection is unusable for any test that spans login, cart and checkout. That rules out the cheapest tier most vendors sell.
- decision Covering carrier code paths means buying a consumer SIM in each market, or accepting that hosting-class behaviour is the only behaviour the suite ever exercises.
- cost Finding out which of those two situations you are in costs one HTTP request per test session, so the diagnosis is cheap even where the fix is expensive.
The far-end server reads the IP's ASN, and IP intelligence providers sort most ASN blocks into roughly hosting, residential or mobile [5]. A datacenter proxy or VPN exit in the right country resolves to a hosting ASN because that is genuinely what it is [4]. Put a consumer SIM from a real carrier behind the same test and it resolves to mobile for the same reason [7].
According to the post, platforms that maintain IP reputation scoring use that class as a signal independent of the country field, and that group by now includes most app stores, ad networks and payment processors [6]. So the country assertion passes while the session is routed down a different code path than a real subscriber would get. The team finds out when a support ticket describes a payment flow nobody on it has seen [9].
The script is small. It builds a requests Session, sets the proxy from a PROXY_URL environment variable, sets Accept-Language to en-SG, then GETs ipapi.co/json/ and prints ip, org and mobile [8]. The post says org should hold a carrier name and not a hosting company, and that mobile is a boolean some providers report separately and worth checking even when org looks right [10]. On the third field, the author wrote that country is "the field everyone checks first and the one that matters least here" [11]. The read costs one extra GET per session [20].
The interest is disclosed in the second paragraph of the post. "I run a mobile proxy network on real SIM cards in Singapore, and this came out of running it," the author wrote [12]. The post does not name the platform on which the payment flow diverged, or how often it happens [21]. Against your own proxy pool the claim is a one-request experiment. That is the part I find persuasive: point the session at the pool you already pay for and read the org string [8].
A clean ASN does not make the rest of the flow correct [15]. Following redirects to the store URL shows which region the app store resolved the session into [16]. The CDN response headers cf-ipcountry, x-amz-cf-pop, x-geo and x-country show which edge and geo-routing bucket served the bytes [17]. That matters when region-specific assets or feature flags come from a CDN and not from the store [17]. Beyond country, that is four checks on one session [19].
For login, cart and checkout the post says to hold the same session and the same proxy connection through every step. A proxy that rotates IP on each new connection hands you a different IP mid-flow, breaks session cookies and sometimes trips fraud checks a real single-session user would never hit [13]. Then there is the scheme string, one character apart [18]: socks5h:// routes the hostname lookup through the tunnel, socks5:// resolves it locally [14]. Without the h the HTTP request exits the intended IP while the DNS query left from the tester's real location, and the post says some platforms cross-reference the two and flag the mismatch [14].
What to watch
- Whether other IP intelligence providers agree with ipapi.co's mobile boolean on the same carrier ASN ranges, since the post leans on one field from one API.
- Whether any app store or payment processor documents the hosting/residential/mobile signal in its own developer docs. That would put the behaviour on the record.
- Whether carrier-class test coverage can be sourced any way other than a SIM per market, given that the SIM per market is what the post's author sells.