Every IP address belongs to an Autonomous System, and that AS carries a number. If you have ever wondered why one proxy gets blocked in minutes while another survives for weeks with identical settings, the answer is usually written in that number — not in your configuration.
This post is about reading it properly.
What an ASN actually is
An Autonomous System is a collection of IP networks operated under a single administrative authority with a single routing policy. Every AS gets a globally unique number from the regional internet registries — an ASN.
A few you may recognise:
| ASN | Operator | Nature |
|---|---|---|
| AS4134 | China Telecom | Consumer broadband + some enterprise |
| AS4837 | China Unicom | Consumer broadband + some enterprise |
| AS15169 | Datacenter | |
| AS16509 | Amazon | Cloud / datacenter |
| AS14061 | DigitalOcean | Cloud / datacenter |
The distinction that matters for proxies is not which company, but what kind of network the AS is. Consumer broadband ASNs contain residential subscribers. Cloud and hosting ASNs contain rented virtual machines. When an anti-fraud system scores your request, this is one of the first things it looks at.
Why platforms treat ASN as a first-class signal
Reputation systems have to answer one question: does this traffic plausibly come from a real person?
A residential ISP ASN is expensive and slow to obtain at scale. Datacenter ASNs are cheap and instant. So ASN type works as a crude but effective proxy for "is this a farm."
This is why the same scraper, with the same user agent and the same request rate, can succeed from a home connection and get a CAPTCHA wall from a VPS. Nothing about your code changed. Your ASN changed.
How to look up an ASN
Three approaches, in increasing order of convenience.
1. whois — available on most Linux boxes:
whois -h whois.cymru.com " -v 8.8.8.8"
The origin field is the ASN, and AS Name gives you the operator.
2. DNS, via Team Cymru — no dependencies, no rate limits:
dig +short 8.8.8.8.origin.asn.cymru.com TXT
# "15169 | 8.8.8.0/24 | US | arin | 1992-12-01"
3. An HTTP API — easiest to integrate:
curl -s "http://ip-api.com/json/8.8.8.8?fields=as,asname,isp,proxy,hosting"
{"as":"AS15169 Google LLC","asname":"GOOGLE","isp":"Google LLC","proxy":false,"hosting":true}
That hosting: true flag is the useful part: it is a direct answer to "is this a datacenter IP?" without you maintaining a list of ASN ranges.
The four-signal check
ASN alone is not enough. A residential IP can still be dirty — shared by thousands of users, previously abused, or listed in a spam database. Run all four:
| Signal | What it tells you | Why it matters |
|---|---|---|
| ASN type | Residential vs datacenter vs mobile | The strongest single predictor |
| IP type databases | How third parties classify the IP | Vendors compare notes; a mismatch is a red flag |
| Blocklists / risk score | Abuse history | A clean ASN does not clear an IP's past |
| DNS and WebRTC leakage | Whether your real IP escapes | A perfect proxy that leaks DNS is not a proxy |
The last one is the most commonly skipped. If your browser resolves DNS outside the tunnel, the destination site may never see your proxy IP at all — it sees your resolver, and often your ISP with it.
Putting it in a script
This runs the ASN portion of the check for a list of IPs:
import json, urllib.request
def asn_lookup(ip):
url = f"http://ip-api.com/json/{ip}?fields=status,country,as,asname,isp,proxy,hosting,mobile"
with urllib.request.urlopen(url, timeout=10) as r:
d = json.load(r)
if d.get("status") != "success":
return None
if d.get("hosting"):
kind = "datacenter"
elif d.get("mobile"):
kind = "mobile"
else:
kind = "residential"
return {"ip": ip, "asn": d.get("as"), "isp": d.get("isp"), "type": kind}
for ip in ["8.8.8.8", "114.114.114.114"]:
print(asn_lookup(ip))
Free tier caveat: ip-api.com allows 45 requests per minute from one IP. For larger batches, throttle or split across resolvers. The DNS method above has no such limit if you only need the ASN and country.
Common mistakes
Treating "residential ASN" as a guarantee. Many residential proxy pools are sourced from devices the operator does not fully control. Quality varies enormously between vendors within the same ASN category.
Ignoring the proxy flag. Some databases flag known proxy ranges independently of hosting status. A residential ASN can still carry a proxy: true mark if the range is widely resold.
Checking once. IP reputation is dynamic. A pool that was clean last month may be burnt now. Validate on a schedule, not on setup day.
Assuming a mobile IP is always better. Mobile ASNs are shared by design — hundreds of users behind one carrier NAT. For account-based work, that sharing is a liability disguised as legitimacy.
FAQ
Does ASN affect SEO or ad delivery?
Yes — search engines and ad networks geolocate and classify by ASN. An inconsistent ASN pattern can trigger suspicious-traffic filters independently of what your content is.
How do I know whether an ASN is a hosting ASN?
Look for the hosting flag in an IP API, or compare against the AS's customer-facing description. Names containing Cloud, Hosting, Server, VPS, or CDN are near-certain datacenter ASNs.
Can I move a proxy from one ASN to another?
You cannot change an IP's ASN — it is assigned at the network level. You change provider, or you change the type of addressing you purchase.
Why do two IPs from the same provider have different ASNs?
Larger providers operate multiple ASes across regions and product lines. Residential and datacenter offerings from one brand are frequently announced from different ASNs.
If you want to run the four-signal check without writing the code yourself, there is a free checker here: IP quality and network-type check. For the platform-by-platform price comparison referenced throughout this series, see the proxy IP pricing centre.
Top comments (0)