# How to check if a proxy is really mobile, residential or datacenter

Source: https://ipvolt.com/blog/check-if-proxy-is-mobile-or-residential
Markdown: https://ipvolt.com/blog/check-if-proxy-is-mobile-or-residential.md

[Home](https://ipvolt.com/index.md) / [Blog](https://ipvolt.com/blog.md) / How to Check if a Proxy Is Really Mobile or Residential

Category: Analysis
Published: 2026-11-08
Updated: 2026-11-08
Author: ipvolt
Reading time: 12 minutes
Tags: proxies, choosing

No single check proves a proxy is mobile or residential. We tested ASN, RDAP, PeeringDB, reverse DNS and IP databases on a mobile line and a datacenter IP.

## Short answer

No single check proves that a proxy is mobile or residential. The strongest signal is the network its exit IP belongs to: the autonomous system number (ASN), who registered it, and what type of network that is. Look those up in RDAP and PeeringDB, then compare at least two IP databases, because they disagree. In our test the datacenter IP gave itself away on every check, while a mobile line on Singtel showed up under two different networks depending on which site it connected to.

What we tested, on 8 November 2026 between 12:06 and 13:18 UTC:

- **From:** ipvolt's server in Helsinki, Finland, running Ubuntu with curl 8.18.0 and dig 9.20.
- **Datacenter sample:** that server's own IPv4 address, which sits with a hosting company.
- **Mobile sample:** ipvolt's Singapore test line on the Singtel network, used as an HTTP and a SOCKS5 proxy with a username and password, and rotated 10 times.
- **Residential sample:** none. We had no home connection to test, so nothing below about residential IPs comes from our own measurements.
- **Masking:** IPv4 addresses are cut to /24 (203.0.113.x) here and in the [results file](/downloads/check-if-proxy-is-mobile-or-residential/results.json), which lists every lookup with its time.

The commands below use 203.0.113.7, an address reserved for documentation. Put your proxy's exit IP in its place.

## The fastest check: ipvolt's proxy checker

Paste the proxy into the free [proxy checker](/tools/proxy-checker) as `host:port:user:pass`, or as a `socks5://` URL. It connects through the proxy to its own echo server and reports, for each proxy:

- **Status:** whether HTTP, HTTPS and IPv6 work through it. [HTTP vs SOCKS5 proxies](/guides/http-vs-socks5-proxies) explains the protocol difference.
- **Exit IP:** the address the echo server saw.
- **ASN and network:** looked up in DB-IP Lite.
- **Network type:** Hosting or data centre, Mobile carrier, Carrier (mobile and fixed lines), Internet provider, or Unknown. It is an estimate from the ASN, made from a list of known networks or from words in the network's name. It does not test the device.
- **Location:** the city and country DB-IP Lite gives for the exit IP.
- **Headers:** whether the proxy added headers that reveal your own IP.

We ran both samples through the checker's own service, the one the page sends your list to:

| | Datacenter (ipvolt's server) | Mobile line (Singtel test line) |
| --- | --- | --- |
| Status | Not checked: the checker refuses ipvolt's own servers, so we ran its lookup code on the address | Working over HTTP and SOCKS5; IPv6 not available |
| Exit IP | 204.168.249.x | 165.173.26.x |
| ASN and network | AS24940, Hetzner Online GmbH | AS56300, MYREPUBLIC LIMITED |
| Network type | Hosting or data centre (estimate) | Internet provider (estimate) |
| Location | Helsinki, Finland | Singapore (Toa Payoh New Town) |
| Headers added | Not checked | None, and your IP was not passed on |

The datacenter row is what you'd expect. The mobile row isn't. In all four runs, at 12:06 and three times between 12:58 and 12:59 UTC, the checker's endpoint saw the line leave from 165.173.26.x in AS56300, a block registered to MYREPUBLIC LIMITED, so it estimated Internet provider rather than Mobile carrier. In the same hour, four other sites saw only Singtel Mobile addresses through the same line, and the checker's lookup code labels those Mobile carrier. Section 5 has the details. Checking one destination isn't enough.

## The checks, one by one

### 1. ASN and RDAP: whose network is it?

An autonomous system is "a connected group of one or more IP prefixes run by one or more network operators which has a SINGLE and CLEARLY DEFINED routing policy" ([RFC 1930](https://www.rfc-editor.org/rfc/rfc1930)). Start by finding which one announces the exit IP. RIPEstat's [network-info call](https://stat.ripe.net/docs/data-api/api-endpoints/network-info) returns the routed prefix and the announcing ASN from RIPE's routing data:

```bash
curl -s "https://stat.ripe.net/data/network-info/data.json?resource=203.0.113.7"
```

Then ask the registry who holds the address and the ASN. RDAP is the registries' JSON interface for this data, an alternative to WHOIS ([APNIC](https://www.apnic.net/about-apnic/whois_search/about/rdap/)). IANA publishes [bootstrap files](https://data.iana.org/rdap/ipv4.json) that list which registry's RDAP server answers for each address block ([RFC 9224](https://www.rfc-editor.org/rfc/rfc9224)). The RIPE NCC's server also redirects queries for other regions to the right registry with an HTTP 301 ([RIPE Database docs](https://docs.db.ripe.net/How-to-Query-the-RIPE-Database/Registration-Data-Access-Protocol/)), so `-L` gets you there from one URL:

```bash
curl -sL "https://rdap.db.ripe.net/ip/203.0.113.7"
curl -sL "https://rdap.db.ripe.net/autnum/64496"
```

To check an offline copy as well, the [iptoasn.com dataset](https://iptoasn.com/) maps address ranges to ASNs in one file. We used the copy dated 1 November 2026.

What came back:

| | Datacenter | Mobile line |
| --- | --- | --- |
| Prefix and ASN (RIPEstat) | 204.168.128.0/17, AS24940 | 119.234.24.0/21, AS45143 |
| AS holder (RIPEstat) | HETZNER-AS Hetzner Online GmbH | SINGTELMOBILE-AS-AP - SINGTEL MOBILE INTERNET SERVICE PROVIDER Singapore |
| RDAP registry | RIPE NCC (IANA's file points to ARIN, which redirected with HTTP 303) | APNIC (RIPE's server redirected with HTTP 301) |
| RDAP network name and block | CLOUD-HEL1, 204.168.240.0/20 | SINGTELMOBILE, 119.234.0.0/17 |
| RDAP holder | Hetzner Online GmbH | Singapore Telecom Mobile Pte Ltd |
| iptoasn.com | AS24940, country DE | AS45143, country SG |

The mobile range is registered to Singapore Telecom Mobile and its ASN says "mobile" in the name. The datacenter range is registered to a hosting company. Names are only names, but this is the first thing to compare with what the proxy was sold as.

One request showed why the network type matters in practice. rdap.org, a public service that forwards RDAP queries to the right registry, answered our datacenter server with a Cloudflare 403 page each time we tried (12:06, 12:56 and 13:15 UTC). Through the mobile line, over HTTP and over SOCKS5, the same request at 13:15 got a 302 redirect to the registry.

### 2. PeeringDB: what type of network?

PeeringDB is where networks describe themselves to other networks. Each entry has a network type, such as Cable/DSL/ISP, Content or Enterprise. PeeringDB calls this data "self-declared and might be rarely updated" and says "We haven't commissioned research into the accuracy of the data" ([PeeringDB](https://docs.peeringdb.com/blog/network_type_what_why_how/)). The [API](https://docs.peeringdb.com/api_specs/) answers without an account:

```bash
curl -s "https://www.peeringdb.com/api/net?asn=64496"
```

Read `info_types` in the answer. Our results:

- **AS24940 (datacenter):** an entry named Hetzner Online, `info_types` Content, scope Europe.
- **AS45143 (Singtel Mobile):** no entry; the API answered HTTP 404.
- **AS56300 (MyRepublic, the network ipvolt's checker saw, see section 5):** an entry named MyRepublic Singapore, `info_types` Cable/DSL/ISP, Content and NSP.

A hosting ASN that lists itself as Content fits a datacenter. Many access networks have no PeeringDB entry at all, so a missing entry tells you nothing either way.

### 3. Reverse DNS: what does the address call itself?

A PTR record maps an address back to a name, under the in-addr.arpa domain ([RFC 1035, section 3.5](https://www.rfc-editor.org/rfc/rfc1035#section-3.5)). Whoever runs the reverse zone for the block decides whether there is one and what it says.

```bash
dig -x 203.0.113.7 +short
```

- **Datacenter:** `static.x.249.168.204.clients.your-server.de`, which is the address written backwards inside the name (last octet masked here). The name resolves back to the same address, and the reverse zone's primary name server is `ns1.your-server.de`, run by the hosting company.
- **Mobile line:** no PTR record (NXDOMAIN) for any of the 17 Singtel addresses the line used. For the 119.234 addresses the answer came from APNIC's own `119.in-addr.arpa` zone, so the carrier had no reverse zone for them. The one MyRepublic address had a PTR name, `165-173-26-x.myrepublic.com.sg`, which did not resolve back to an address.

A name with "static", "server" or a hosting company's domain points to a server. No name at all is common on mobile networks, and also on many other networks, so on its own it proves nothing.

### 4. IP databases: what do the free tiers say?

We asked three free sources about every address. None of them returned a connection or usage type:

- **ipinfo, JSON API without a token:** the ASN and network name, a hostname when there is a PTR record, and a city. No type field. Its free Lite API returns ASN, AS name, AS domain, country and continent ([IPinfo docs](https://ipinfo.io/developers/lite-api)).
- **IP2Location.io without a key:** ASN, network name, location and an `is_proxy` flag. Its `usage_type` field, with codes such as MOB (Mobile ISP), ISP (Fixed Line ISP) and DCH (Data Center/Web Hosting/Transit) ([IP2Location.io docs](https://www.ip2location.io/ip2location-documentation)), starts with the paid plans, and the free plan's proxy detection covers open public proxies only ([IP2Location.io pricing](https://www.ip2location.io/pricing)).
- **DB-IP Lite**, the database inside ipvolt's checker (build of 1 November 2026): ASN, network name and city. Its IP to ASN file lists the first and last address of each range, the AS number and the AS organization ([DB-IP](https://db-ip.com/db/download/ip-to-asn-lite)).

MaxMind sells connection type (Cable/DSL, Cellular, Corporate, Satellite) as a separate database ([MaxMind](https://dev.maxmind.com/geoip/docs/databases/connection-type/)); we did not buy it.

Where the free sources disagreed:

- **Where the datacenter is.** ipinfo and DB-IP Lite put 204.168.249.x in Helsinki, Finland, which is where the server is. IP2Location.io put it in Amsterdam, Netherlands. iptoasn.com lists DE for the range, the network's registered country rather than the server's location.
- **Where the mobile line is.** ipinfo and IP2Location.io said Singapore for every Singtel address. DB-IP Lite named 11 different places for the 17 addresses, from Punggol to Tanjong Pagar. For the MyRepublic address, ipinfo said Yishun New Town and DB-IP Lite said Toa Payoh New Town.
- **Whether it's a proxy.** IP2Location.io answered `is_proxy: false` for every address we asked about, including each exit of the proxy line.

### 5. Rotation and CGNAT (mobile only)

Rotation asks the device to reconnect to the carrier, which hands it a new public IP; [IP rotation](/docs/rotation) covers how that works on ipvolt devices. Our test line accepted one rotation every 4 minutes and answered HTTP 429 to anything sooner, so we spaced the 10 rotations 250 seconds apart.

All 10 rotation requests were accepted, and each time ipify saw a new address 6.3 to 7.7 seconds later (median 6.5 seconds). The 10 new addresses were all different and fell in 10 different /24 blocks. iptoasn.com put every one in AS45143, RDAP named every one SINGTELMOBILE (APNIC), and RIPEstat agreed for the 8 it returned data for. None had a PTR record, and ipinfo and IP2Location.io placed all of them in Singapore. The address also moved without a rotation: in 5 of the 10 rounds, the new address and three checks a few seconds later did not all match.

Carriers can share one public IPv4 address between many subscribers with carrier-grade NAT (CGNAT). RFC 6598 reserves 100.64.0.0/10 as "Shared Address Space" so that carriers can number the links between their CGN devices and customer equipment ([RFC 6598](https://www.rfc-editor.org/rfc/rfc6598)). Behind the NAT, "A public IPv4 address in the CGN pool is shared by several subscribers at the same time" ([RFC 6269](https://www.rfc-editor.org/rfc/rfc6269)). This matters for two reasons:

- **Blocking hurts everyone on the address.** RFC 6269 notes that limiting one shared address after failed logins "may block out other users who have not made any previous attempts".
- **Location is coarse.** "A subscriber behind a CGN geo-locates to wherever the prefix of the CGN appears to be" (RFC 6269, section 7).

You can't see the CGNAT from outside. Through the proxy we only ever saw public addresses, never a 100.64.0.0/10 one. What we could see is how the exits behaved:

Right after the 10th rotation we sent 24 requests in about 90 seconds to four echo services (ipify, icanhazip, ifconfig.me and checkip.amazonaws.com), 16 over HTTP and 8 over SOCKS5, without rotating. They came from two public addresses, both Singtel Mobile (AS45143): 119.234.48.x for 16 requests and 119.234.44.x for 8. Every SOCKS5 request used 119.234.48.x; the HTTP requests switched between the two.

Meanwhile ipvolt's checker saw 165.173.26.x, in MyRepublic's AS56300, in every run, over HTTP and SOCKS5. That address had a PTR name under myrepublic.com.sg. So the same line reached the internet through at least three public addresses on two networks, and which one a site saw depended on the site. Several Singtel addresses at once fits a carrier NAT that hands different connections different addresses from its pool, but we can't see the NAT, and from outside we can't tell why one destination saw a different network.

## Results side by side

| Check | Datacenter (ipvolt's server, Helsinki) | Mobile line (Singtel test line, Singapore) |
| --- | --- | --- |
| ASN and holder | AS24940, Hetzner Online GmbH | AS45143, Singapore Telecom Mobile Pte Ltd (17 addresses); AS56300, MYREPUBLIC LIMITED (1 address, seen only by ipvolt's checker) |
| RDAP network name | CLOUD-HEL1 (RIPE NCC) | SINGTELMOBILE (APNIC); MYREPUBLIC-SG for the checker's address |
| PeeringDB type | Content | No entry for AS45143; AS56300: Cable/DSL/ISP, Content, NSP |
| Reverse DNS | `static.x.249.168.204.clients.your-server.de`, resolves back | None for any Singtel address; `165-173-26-x.myrepublic.com.sg` for the checker's address |
| ipvolt's checker | Hosting or data centre (lookup code only) | Internet provider in all 4 runs (AS56300 exit) |
| ipinfo, no token | Helsinki; no type field | Singapore; no type field |
| IP2Location.io, no key | Amsterdam; `is_proxy` false; no `usage_type` | Singapore; `is_proxy` false; no `usage_type` |
| DB-IP Lite | Helsinki | 11 different places in Singapore |
| rdap.org | HTTP 403 (Cloudflare) | HTTP 302 to the registry |
| 10 rotations | Not applicable | 10 new addresses, all AS45143, median 6.5 s |
| Addresses at once | One | Two Singtel addresses in 24 requests, plus the MyRepublic address for the checker |

There is no residential column: we had no home connection to test.

## Signs a "mobile" or "residential" proxy isn't what it claims

Each of these comes from our runs or from the sources above:

1. **The ASN belongs to a hosting company.** Our datacenter address sat in AS24940, Hetzner Online. RDAP named its block CLOUD-HEL1, and PeeringDB lists the network as Content.
2. **Reverse DNS names a server.** Ours was `static.x.249.168.204.clients.your-server.de`, a static name under the hosting company's domain.
3. **Sites that refuse datacenter ranges refuse it.** rdap.org returned a Cloudflare 403 to our server and a redirect to the mobile line.
4. **The exit network changes with the destination.** A line sold as mobile should reach every site from the carrier's network. Ours reached four echo services from Singtel Mobile and ipvolt's checker from MyRepublic's AS56300, whose PeeringDB types are Cable/DSL/ISP, Content and NSP. Check the exit IP on at least two services and look up every ASN you see.
5. **Rotated addresses leave the carrier.** On our line, all 10 stayed in AS45143. New addresses in a hosting ASN would mean the "mobile" IPs aren't on a carrier.

Signs 1 to 3 apply to "residential" proxies too. We had no residential line to test them on.

## What these checks can't tell you

- **The device.** An ASN describes a network, not the device on it. Many carriers serve phones and home lines from one ASN, and no outside lookup can tell which one a request came from. That is why the checker has a "Carrier (mobile and fixed lines)" type, and why [mobile vs residential proxies](/guides/mobile-vs-residential-proxies) treats the two as overlapping.
- **Accuracy of self-description.** PeeringDB types are self-declared, RDAP names are whatever the holder registered, and many access networks have no PeeringDB entry. AS45143 had none.
- **Agreement between databases.** Free databases disagree with each other: on the same day, two of them placed our datacenter address in two different countries.
- **Connection type, for free.** None of the free tiers we used returns one.
- **CGNAT.** It is invisible from outside. We saw how the exits behaved, not the carrier's NAT.
- **Paths you didn't test.** A proxy can send different destinations over different routes. Each check only tells you about the connection it made.
- **Our sample.** One mobile line on one carrier, one datacenter address, one day, no residential line.

**Check a proxy now:** paste it into ipvolt's free [proxy checker](/tools/proxy-checker), then look up the ASN it reports with the commands above.

Need a mobile IP in a specific country? [Dedicated mobile proxies from $9 a day.](/mobile-proxies)

## Sources

- [RFC 1930: Guidelines for creation, selection, and registration of an Autonomous System (AS)](https://www.rfc-editor.org/rfc/rfc1930)
- [RIPEstat Data API: network-info](https://stat.ripe.net/docs/data-api/api-endpoints/network-info)
- [RFC 9224: Finding the Authoritative Registration Data Access Protocol (RDAP) Service](https://www.rfc-editor.org/rfc/rfc9224)
- [IANA: RDAP bootstrap file for IPv4 address allocations](https://data.iana.org/rdap/ipv4.json)
- [RIPE Database docs: Registration Data Access Protocol (RDAP)](https://docs.db.ripe.net/How-to-Query-the-RIPE-Database/Registration-Data-Access-Protocol/)
- [APNIC: Registration Data Access Protocol](https://www.apnic.net/about-apnic/whois_search/about/rdap/)
- [PeeringDB API specification](https://docs.peeringdb.com/api_specs/)
- [PeeringDB: Network Type: What's it for? How to use it?](https://docs.peeringdb.com/blog/network_type_what_why_how/)
- [RFC 1035: Domain names, implementation and specification (section 3.5, IN-ADDR.ARPA)](https://www.rfc-editor.org/rfc/rfc1035#section-3.5)
- [iptoasn.com: IP to ASN dataset](https://iptoasn.com/)
- [IPinfo Lite API documentation](https://ipinfo.io/developers/lite-api)
- [IP2Location.io API documentation](https://www.ip2location.io/ip2location-documentation)
- [IP2Location.io pricing and plans](https://www.ip2location.io/pricing)
- [DB-IP: IP to ASN Lite](https://db-ip.com/db/download/ip-to-asn-lite)
- [MaxMind: GeoIP Connection Type database](https://dev.maxmind.com/geoip/docs/databases/connection-type/)
- [RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space](https://www.rfc-editor.org/rfc/rfc6598)
- [RFC 6269: Issues with IP Address Sharing](https://www.rfc-editor.org/rfc/rfc6269)

## Plug in your first proxy.

Mobile from $9 a day. Residential from $2.40 per GB, opening soon.

[Buy mobile](https://ipvolt.com/dashboard/mobile)

## Residential launch list

Leave your email and we’ll tell you when residential proxies open.

Consent: One email when access opens. Nothing else.

[Join the launch list](https://ipvolt.com/blog/check-if-proxy-is-mobile-or-residential#waitlist-blog-end). Use the email form on this page to join the launch list.

[Privacy](https://ipvolt.com/privacy)

## Related posts

- [How Many GB of Proxies Do You Need? Pages per GB, Measured](https://ipvolt.com/blog/how-many-gb-of-proxies-do-i-need.md) (Benchmark, Oct 5, 2026, 8 min read): We loaded 34 public pages three ways through a metering proxy. 1 GB fits about 44,000 HTML-only fetches, or about 900 full Playwright page loads.
- [Unlimited residential proxies: what they cost per GB](https://ipvolt.com/blog/unlimited-residential-proxies-cost-per-gb.md) (Comparison, Sep 27, 2026, 18 min read): Turn Mbps- and thread-based unlimited residential proxy plans into cost per GB, find the break-even with your per-GB rate, and check terms before you pay.
- [Multiple Meta Ad Accounts: An Agency Setup Checklist](https://ipvolt.com/blog/manage-multiple-meta-ad-accounts.md) (Analysis, Sep 19, 2026, 6 min read): Manage multiple Meta ad accounts with a client access record, clear team responsibilities and a checklist for access errors, security incidents and routing.

## Related guides

- [Mobile vs residential proxies: build a useful evaluation](https://ipvolt.com/guides/mobile-vs-residential-proxies.md): Compare carrier and household exit networks for QA, keep browser emulation separate, and measure the capabilities your workflow actually needs.
- [HTTP vs SOCKS5 proxies: choose by the connection](https://ipvolt.com/guides/http-vs-socks5-proxies.md): Compare HTTP CONNECT and SOCKS5, understand DNS placement and TLS boundaries, and select a protocol your actual client and provider support.
- [Rotating vs sticky proxies: plan for session continuity](https://ipvolt.com/guides/rotating-vs-sticky-proxies.md): Choose rotation around the smallest complete workflow, distinguish exit affinity from cookies, and test what happens when a sticky session ends early.

## About ipvolt

Technical analysis from ipvolt.

Mobile from $9 a day. Residential from $2.40 per GB, opening soon.
