
IPv4 exhaustion is now a UX problem
Posted on Apr 15, 2026 by Maddy Miller
In Technology with tags Explainer, UX, Web
1781 words, 7 minutes to read
Discussions about the dwindling supply of IPv4 addresses have covered the internet for decades at this point, although always focusing on the technical problems this causes. At this point however, the technical impact and solutions are well known, we’re now dealing with a rarely discussed or acknowledged user experience problem.
Most discussions online don’t touch on this topic because it’s something that mostly affects those in countries with poor IP allocation compared to population levels. The places where CGNAT is an inescapable reality. For many users in Western Europe or the United States, IPv4 scarcity still feels like a theoretical issue. And they design the internet accordingly.
The realities of CGNAT
For those unaware, Carrier-Grade NAT (or CGNAT) is basically a band aid solution to not having enough IP addresses for every customer. It’s a system that lets multiple households share a single IP address, ideally only a small number per address, but theoretically thousands. This means whatever is on the other side of the internet (website, game server, download host) sees you all as one single household.
For a few people this probably doesn’t matter too much. You’re not likely to be connecting to the same websites at the same time, and on the odd chance that you do it probably doesn’t matter. However, once you start using services that treat the IP address as a part of identity, or use it for security measures, it starts to break down.
Browsing the internet behind CGNAT looks like constant Captchas, rate limits, IP bans for “abuse,” etc. I recently found out that it’s not normal to have to do a Captcha every time I join a new Discord server, after sharing an incident where my Captcha prompt to join a server was rate limited for around 4 hours. It almost feels like a completely different version of the internet with how much the experience differs. This even happens on common sites like Google search.

Now I’m Australian, and we don’t have it as bad as many other countries. CloudFlare released an article last year with a handy map, showing Australia as having milder CGNAT. Although my anecdotal experience from myself and those around me reflects a marginally worse experience than this (I personally share an IP between 64 households), so I do wonder if it depends on the region in the country. Either way, if this is what I experience, what is someone in a country with more extreme CGNAT experiencing?
These problems aren’t rare edge cases, they show up everywhere. Social media, finance, gaming, streaming, even search engines.
Why this happens
Theoretically sharing IP addresses shouldn’t be an issue outside of some niche edge cases (port exhaustion, but we don’t need to get into that). The reason this affects people is because of fundamental design decisions made all over the internet that tie IP address to identity and trust.
IP addresses are routinely used by abuse detection algorithms as a proxy for one user. If fifty people are suddenly accessing a site via a shared IP, that assumption can fail and harm the user. You don’t even need CGNAT to hit issues like that, a class of school children trying to access the same resource all at once from a school network would look the same.
Another case where this can have odd side effects is IP-based location data. Many apps and services use “Geo-IP databases,” which are basically big databases that map IP addresses to general regions, think at the city scale rather than your exact address. If many people share an IP, this information might be completely wrong, causing weird location results when these databases are relied upon.
One example that’s become more of a thing recently are streaming service household restrictions. They take frequent city-hopping as a sign of account sharing. Most IP addresses are dynamic and change frequently, often daily. CGNAT when paired with dynamic IP addresses can trigger false positives in these detections to the point they can’t be trusted, because the service just sees the user jumping between cities (and often logging in with multiple accounts to the same IP address). I live in Brisbane Australia, and more often than not have an IPv4 address assigned to a different city within Australia, typically Melbourne.
IP Bans
By their very nature, banning an IP address from using a service is going to run into issues with CGNAT (and dynamic IPs). An example that I see often is Discord, where banning a user from a server will also automatically ban their IP address. As far as I can tell, these are effectively permanent (although not always reliable, so I assume Discord has some attempt to detect shared IPs). This means anyone else who tried to join the Discord server from that IP address is prevented from joining until the original user is unbanned.
As a moderator, I see this all of the time. From the user’s perspective, they just can’t join; the invite just shows as “invalid,” like it would for a typo or regular ban. They try to appeal a ban that doesn’t exist, and there’s nothing we as moderators can do. Discord understandably won’t disclose who they share an IP with, so we can’t unban the original banned user. The only path forward in those situations is for the user to get a new IP address, something most users won’t understand, let alone actually have direct control over. With CGNAT and dynamic IPs this becomes more likely to happen on larger Discord servers. A single ban can silently prevent that entire IP address from joining a server forever.
Say for example your ISP has 1000 households as customers and 10 IP addresses. On any given day, you’ll share an IP with 100 of those households. Now imagine one of those households has a user who enjoys trolling the ten biggest discord servers. They might accrue a few account bans. Spread that over the span of a few days, those bans will start piling up over the limited selection of IP addresses.
As this goes on, your chances of getting an IP address that isn’t banned get smaller. It might become genuinely difficult for you to join certain servers, and there’s nothing the moderators can do to “allowlist” your account, you’re just using a permanently tainted IP address. This is of course an extreme example, but it illustrates how one user can impact hundreds to thousands of others.
The solution
The solution to the user experience issue is for developers to not design systems with faulty assumptions. IP addresses do not cleanly map to a single user (and inversely, a single user does not have one single IP address). While this generally made sense in the early days of the internet, it doesn’t now and hasn’t for a long time.
IPv6
In saying that, there’s also a well-known technical solution: IPv6. It’s been in use for decades, but adoption is still not where it needs to be. IPv6 has enough addresses that every single device can have its own unique address. No sharing amongst ISP customers, not even sharing within a household.
I have an IPv6 range allocated to me, and the difference between services using it and IPv4 is night and day. All the issues described here only happen on IPv4. It honestly feels like using a completely different internet. One that works, and one that doesn’t. Arguments for IPv6 usually focus on the technical benefits, but most users won’t care about that. What they care about is the user experience, and for a lot of the world IPv6 is actually an immediately noticeable improvement. For some people, it could be more impactful than ten times faster internet speeds.
The frustrating part is that both the user’s equipment (and ISP) and the internet service must support IPv6. In many cases IPv6 is not an automated setup like IPv4 is. I personally had to contact my ISP to find a “prefix delegation size” to enter into my router before IPv6 would work at all. Most people aren’t going to do that or even know what that is.
Even if an end-user’s equipment and ISP support IPv6, many frequently used services online still do not. I’ve mentioned Discord a few times as an example earlier, and that’s because it does not support IPv6. You can check if a site supports IPv6 using tools like this, or view this site for a list of what top 500 sites support it. While adoption has improved, the top 500 site list still looks fairly bleak as of writing.
By not adopting IPv6, these sites are ignoring a potentially significant user experience improvement (and potential revenue increase). While I do not have data to back this up, it would not surprise me if global websites saw improvements to their conversion rates when adding IPv6 support. Over a decade ago now, Facebook noted 10-15% performance improvements over IPv6, and CloudFlare has shown that slower page loads measurably impact conversions. With how much worse IPv4 is for user experience now, I feel it’s safe to say that relying on it is a conversion-affecting UX burden.
It’s worth noting, though, that this doesn’t mean sites should go back to assuming “one IP = one user.” Shared devices still exist, and there will always be situations where that assumption fails. IPv6 just makes the assumption far more likely to be true most of the time, and that change resolves almost all of the issues.
Conclusion
CGNAT isn’t a niche technical band aid like it was originally intended to be, it’s become a core part of the global internet. One that’s at heavy odds with the foundational assumptions that much web development follows. When web systems are designed with the assumption that IP addresses are usable for identity and trust, it’s the end users that end up facing the consequences.
IPv6 is a solution to these problems but must be supported at every layer. The web services must support it, and the user’s ISP and equipment must support it. Until then, hundreds of millions of people will continue to experience a fundamentally different internet to everyone else. An internet that’s slower, more hostile, more fragile, and less trusting. The worst part is that the solution has been available for decades, there has just been no urgency to finish the transition.
Overall, it’s clear that infrastructure choices can be user experience choices. These assumptions that we build into systems actively shape how people experience the internet. They shape who gets a smooth experience, and who gets a degraded one. IPv6 is not just a technical protocol update for these people, it’s a chance to unify web experiences for everyone. A chance to realign the internet with the reality of how people actually connect to it.



