Mixed-Subnet Datacenter Proxies: Why IP Spread Matters
Mixed-subnet datacenter proxies for buyers: what mixed means by vendor, how to measure IP spread by /24, prefix and ASN, and when same-subnet lists win.

Datacenter mix proxies, sold as "mixed subnet" or "multi-subnet" plans, spread your IPs across many address blocks instead of handing you a contiguous run from one range. Buy them when a target blocks by range or when one bad neighbour should not take out your whole list. But do not trust the label: measure the spread by /24, by announced prefix and by ASN when the IPs arrive, because "mixed" means different things at different vendors.
The pitch is simple. If 200 of your proxies live in one /24 and a site blocks that /24, you lose all 200 at once. If they live in 200 different blocks, the same rule costs you one. The fine print is where buyers get caught: many plans are mixed at the /24 level and concentrated everywhere else, so a block at the prefix or network level still removes most of the list.
This guide is about buying and verifying that spread. For the fundamentals of CIDR notation and how subnet bans work, start with what are subnet proxies. Here we assume you know what a /24 is and want to know whether the plan in front of you is worth its label.
What "mixed" means on a vendor page
There is no standard definition. In practice, providers use "mixed" for any of these, and a single plan may mean only the first:
| Label on the page | What is usually true | What is not promised |
|---|---|---|
| Mixed subnets, random subnets | IPs come from different /24 blocks | Different /16s, prefixes or networks |
| Different C-classes | The same as above, in older terminology | Anything above the /24 |
| Multi-location or mix location | IPs sit in several datacenters or cities | Different operators or ASNs |
| Multi-ASN | IPs are announced by more than one autonomous system | Even distribution across those ASNs |
| Diverse pool | A marketing word | Anything measurable |
"C-class" deserves a note. The old class-based addressing system was retired in 1993, but proxy sellers still say "different C-class" to mean different /24 networks. It is a useful shorthand as long as you remember it only speaks to the smallest layer.
Ask which of these the vendor means in writing. A clear answer such as "no two IPs in your order share a /24, and no more than a set share come from one ASN" is something you can test. "Highly diverse" is not.
The four layers a block can happen at
Anti-bot systems and firewall rules do not all block at the same granularity. Spread only protects you at the layers where it exists.
| Layer | Typical size | Who blocks here | Spread needed to survive it |
|---|---|---|---|
| Single IP | 1 address | Rate limiters, per-IP reputation | Any pool larger than one IP |
| /24 block | 256 addresses | Simple firewall rules, WAF custom rules, fail2ban style tooling | IPs in many different /24s |
| Announced prefix | Often a /22 to /16, sometimes larger | Rules built from routing data, reputation feeds keyed by prefix | IPs spread across different routed prefixes |
| ASN | Every prefix the network announces | Bot management that treats hosting networks as risky, allow or deny lists by ASN | IPs from several unrelated networks |
The third row is the one buyers overlook. A block of addresses you think of as "many /24s" may be announced to the internet as a single /20 or /19 by one operator. A reputation system that works from routing data sees one object, not sixteen. The mechanics of how prefixes are announced, and how to look them up, are covered in our guide to BGP and RIR IP allocations.
The fourth row sets the ceiling. If a target blocks hosting ASNs as a category, no amount of datacenter spread helps. Every datacenter IP, however mixed, belongs to a hosting network, as explained in what is a datacenter ASN. Mixed subnets protect you against targeted range blocks, not against a policy that rejects datacenter traffic outright.
Scraping at scale? Skip the blocks.
Fast, unblockable datacentre proxies with unlimited bandwidth.
Raw subnet count vs effective subnet count
Vendors that do share spread figures usually give a count: "IPs from 150 subnets". A count hides concentration. A better number is the effective subnet count, borrowed from how economists measure market concentration:
effective subnets = 1 / (sum of each subnet's share squared)
If every subnet holds the same number of your IPs, the effective count equals the raw count. The more lopsided the distribution, the further the effective count falls.
| Your 1,000-IP list | Raw /24 count | Largest /24 share | Effective /24 count |
|---|---|---|---|
| 10 blocks of 100 IPs each | 10 | 10% | 10 |
| 200 blocks of 5 IPs each | 200 | 0.5% | 200 |
| 750 IPs filling three blocks, 250 spread 5 each over 50 blocks | 53 | 25% | about 5 |
| 1,000 blocks of 1 IP each | 1,000 | 0.1% | 1,000 |
The third row is the trap. It honestly contains 53 subnets and would pass a vendor's "50+ subnets" claim, yet it behaves like a list of about five, because three blocks hold three quarters of it. Ask for the distribution, or compute it yourself from the list, rather than accepting a count.
Run the same calculation at the prefix and ASN layers. A list can have an effective /24 count of 200, an effective prefix count of 6 and an effective ASN count of 1.3. That list is well protected against simple firewall rules and barely protected against anything smarter.
Spread as a throughput ceiling
Bans are the obvious reason to care about spread. Rate limits are the less obvious one, and for high-volume collection they often matter more.
Many rate limiters count requests per IP. Some count per /24 or per prefix instead, precisely because they have seen scrapers rotate through neighbouring addresses. Against that kind of limiter, rotating across 500 IPs does nothing if those IPs share a handful of ranges: the counter sees a few very busy blocks, not 500 quiet addresses.
That turns the effective subnet count into a capacity figure. Illustrative assumption: a target tolerates about 300 requests per minute from any one /24 before it starts returning 429s.
| Pool as the target sees it | Effective /24 count | Rough ceiling before range throttling |
|---|---|---|
| 1,000 IPs packed into 4 blocks | 4 | about 1,200 requests per minute |
| 1,000 IPs, lopsided across 53 blocks (three full ones) | about 5 | about 1,200 per minute, when the three full blocks start throttling |
| 1,000 IPs across 200 even blocks | 200 | about 60,000 requests per minute |
Two lists of the same size, bought at the same per-IP price, differ by a factor of fifty in how fast they can work against that target. Adding threads to the first list does not help; it only makes the busy blocks hit their limit sooner, and the 429s that follow can escalate into a full range block.
This has a practical consequence for how you schedule work. If your audit shows concentration, spread requests across blocks deliberately: track requests per /24 in your scheduler and pause a block that nears its limit, rather than letting random rotation pile traffic into the largest one. The general per-IP version of this arithmetic is in our guide to managing per-IP request limits. The same idea applies one layer up.
Sessions add a second wrinkle. On a well-spread pool, a sticky session that expires and re-rotates will usually land in a different block, often in a different city. For stateless page fetches that is harmless. For a multi-step flow that stores a location in a cookie, it can change currency or shipping results between step two and step three, so pin the session for the whole flow or set the country explicitly.
When a same-subnet list is the better buy
Wide spread is not always the right product. Contiguous or same-subnet IPs win in several situations.
- You allowlist the IPs on your own systems. A partner API, a staging firewall or a corporate VPN that must trust your proxy exits is far easier to configure with one or two ranges than with 300 scattered /32 entries. Our explainer on IP whitelisting for proxies covers the operational side.
- You need consistent geolocation. IPs from one block in one datacenter tend to geolocate identically. Mixed lists often span cities, which can change local search results, currency or content between requests.
- Your target does not block by range. If failures are per IP and per rate, spread across subnets adds nothing you will notice.
- Your volume per IP is low. A small monitoring job that sends a few requests an hour per IP rarely triggers range-level rules.
- You run a small, stable set of dedicated IPs for accounts. Here the relationship between each IP and each account matters more than blast radius. The dedicated versus shared decision is covered in shared vs dedicated datacenter proxies.
Mixed spread matters most for the opposite profile: large lists or rotating pools, high request volume per target, and targets known to block ranges after abuse.
Audit a delivered proxy list in ten minutes
If you bought a static list, you can measure its spread before you rely on it. The script below groups IPs by /24, then looks up each IP's announced prefix and origin ASN using Team Cymru's public IP-to-ASN bulk whois service, and prints raw and effective counts for each layer.
# audit_spread.py: measure IP spread of a static proxy list (IPv4, one IP per line).
import ipaddress, socket
from collections import Counter
def effective(counter):
total = sum(counter.values())
return 1 / sum((n / total) ** 2 for n in counter.values())
def cymru_bulk(ips):
"""Bulk lookup via whois.cymru.com:43. Returns {ip: (asn, prefix, as_name)}."""
query = "begin\nverbose\n" + "\n".join(ips) + "\nend\n"
with socket.create_connection(("whois.cymru.com", 43), timeout=60) as s:
s.sendall(query.encode())
raw = b""
while chunk := s.recv(65536):
raw += chunk
out = {}
for line in raw.decode(errors="replace").splitlines():
parts = [p.strip() for p in line.split("|")]
if len(parts) >= 7 and parts[0].isdigit():
asn, ip, prefix, as_name = parts[0], parts[1], parts[2], parts[6]
out[ip] = (asn, prefix, as_name)
return out
ips = [l.strip().split(":")[0] for l in open("proxies.txt") if l.strip()]
slash24 = Counter(str(ipaddress.ip_network(f"{ip}/24", strict=False)) for ip in ips)
meta = cymru_bulk(ips)
prefixes = Counter(meta[ip][1] for ip in ips if ip in meta)
asns = Counter(f"AS{meta[ip][0]} {meta[ip][2]}" for ip in ips if ip in meta)
for name, c in [("/24", slash24), ("announced prefix", prefixes), ("ASN", asns)]:
top, n = c.most_common(1)[0]
print(f"{name:17} raw={len(c):5} effective={effective(c):7.1f} largest={n/len(ips):.1%} ({top})")
Strip the port or credentials from each line first; the script keeps only what comes before the first colon. Team Cymru's service is free for reasonable bulk use; batch large lists rather than hammering it.
Read the output from the bottom up. If the ASN line shows one network holding most of the list, that is your real exposure, whatever the /24 line says. If the announced prefix line collapses to a handful, a routing-aware block will hit most of your IPs together. The IP reputation side of the audit, whether those ranges are already on blocklists, is covered in what is IP reputation.
Audit a rotating gateway by sampling exits
With a rotating gateway you never receive a list. You can still estimate spread by sampling exit IPs and feeding them into the same analysis.
# sample_exits.py: collect exit IPs from a rotating gateway, then run audit_spread.py on them.
import concurrent.futures as cf
import requests
PROXY = "http://USER:PASS@gateway.sparkproxy.io:11000" # random exit per request
def exit_ip(_):
try:
r = requests.get("https://api.ipify.org",
proxies={"http": PROXY, "https": PROXY}, timeout=20)
return r.text.strip()
except requests.RequestException:
return None
with cf.ThreadPoolExecutor(max_workers=20) as pool:
seen = [ip for ip in pool.map(exit_ip, range(1000)) if ip]
unique = sorted(set(seen))
print(f"{len(seen)} samples, {len(unique)} unique exits")
open("proxies.txt", "w").write("\n".join(unique))
Three caveats keep the sample honest. It is a lower bound: 1,000 requests cannot show you a pool of hundreds of thousands, so treat the numbers as "at least this spread". Sample from the country you will actually use, since spread can differ sharply by location. And repeat the sample on another day, because gateways may draw from different parts of the pool over time.
The shape of the results still tells you plenty. If 1,000 samples produce 990 unique IPs across hundreds of /24s and dozens of prefixes, the pool is broad in the region you tested. If they produce 300 unique IPs in 12 /24s, you have learned something no sales page would say.
Acceptance thresholds to put in writing
For static lists bought for range-sensitive work, agree acceptance criteria before payment or during the refund window. The figures below are our suggested starting points, not an industry standard. Tune them to your targets.
| Check | Suggested threshold for a list of a few hundred IPs | Why |
|---|---|---|
| Largest single /24 share | No more than 2% of the list | Caps the loss from one simple range block |
| Effective /24 count | At least half the raw /24 count | Catches lopsided distributions hiding behind a count |
| Largest announced prefix share | No more than 15% | Limits routing-aware blocks |
| Effective ASN count | At least 3, if the target is known to block by network | A single operator's reputation should not decide your success rate |
| Geolocation consistency | Matches the country ordered, city if specified | Mixed lists drift across cities more often |
| Blocklist presence | Checked against the lists your targets use | Spread does not help if the ranges are already flagged |
Share the audit output with the vendor if a list fails. A reputable provider can usually replace concentrated IPs. Also check how replacements are handled later: IPs added months after purchase are a common source of creeping concentration.
Trade-offs of wide IP spread
Spread costs something, and the costs are easy to miss until they show up in production.
- Price per IP. Vendors that sell by the IP often charge more for guaranteed unique /24s, because every order consumes more of their address space.
- Geolocation drift. Wider spread usually means more datacenters and more cities. If your task is location-sensitive, set the country explicitly and confirm city-level results where they matter.
- Latency variance. IPs in different facilities route differently. Average latency may be fine while the slowest tenth of requests gets noticeably slower.
- Harder allowlisting. Discussed above, and a real operational cost for teams that have to register exits with partners.
- Mixed reputation. Spreading across many ranges spreads you across many histories. Some blocks will be cleaner than others, which is why the audit includes a blocklist check. Our guide to clean datacenter subnets covers that side.
The right amount of spread is the least you need to survive the blocks your targets actually use. More is not free.
How SparkProxy's pool is structured
SparkProxy sells access to a rotating datacenter pool rather than fixed IP lists. The network is 1M+ datacenter IPs across 80+ countries, including 50,000+ US addresses, reached through gateway.sparkproxy.io: port 11000 for rotating HTTP/HTTPS, 11002 for sticky sessions and 13000 for SOCKS5. Rotation on proxy plans is random per request or automatic every 5 minutes, with USA and worldwide rotating options.
That model changes the audit. You are not checking a list you own; you are checking the breadth of the exits you draw from, which is what the sampling script above does. Run it on your target country before you commit traffic, and rerun it if your success rate shifts.
Plans are priced by concurrent threads with unlimited bandwidth and 30-day validity: Starter $75 for 100 threads, Core $140 for 250, Boost $240 for 500 and Plus $440 for 1,000. If you need a fixed, same-subnet set of IPs to allowlist on a partner system, a rotating pool is the wrong shape and a dedicated static list from another provider will serve you better. For the broader choice, see rotating vs static datacenter proxies.
Frequently asked questions
FAQ
Datacenter mix proxies are datacenter IP plans where the addresses come from many different subnets, and sometimes from several datacenters and networks, rather than from one contiguous block. The goal is that a block on one range removes only a small part of your list.
They are better when targets block by IP range or when you run high volume across large lists. Same-subnet proxies are better when you must allowlist the IPs on your own or a partner's systems, need consistent city-level geolocation, or send low volume per IP.
It is older shorthand for IPs in different /24 networks, borrowed from class-based addressing that was retired in 1993. It tells you the IPs do not share a /24, but says nothing about whether they share a larger routed prefix or the same ASN.
Group the IPs by /24, then look up each IP's announced prefix and origin ASN with a bulk service such as Team Cymru's IP-to-ASN whois, and compute the largest share and effective count at each layer. For a rotating gateway, sample several hundred exit IPs first and analyse those.
No. Every datacenter IP belongs to a hosting network, so a site that blocks datacenter ASNs as a category will still block a well-spread list. Subnet spread protects against targeted range blocks, not against ASN-level datacenter filtering.
Focus on concentration rather than a raw count. As a starting point, keep any single /24 under about 2% of the list and check that the effective subnet count is at least half the raw count, then tighten the thresholds if your targets block aggressively by range.
Get 20% off your first month
Premium datacentre proxies with unlimited bandwidth. Use the code at checkout.
Save up to 15% more on quarterly, half-yearly and yearly plans
Related articles

Semi-Dedicated Proxies: When 2-3 Users per IP Makes Sense
Semi-dedicated proxies explained: how 2-3 user IP sharing works, what vendors promise, the per-IP rate budget maths and the questions to ask before you buy.

Mobile or Residential Proxies for Account Work: Which to Buy
Mobile vs residential proxies for logged-in account work: which to buy by scenario, static vs rotating, cost models, sourcing and when you need neither.

Carrier-Targeted Mobile Proxies: Picking a Specific Network
Mobile carrier proxy targeting explained: when a named network matters, how vendors implement it, why MVNO labels mislead, and how to verify the carrier.
