IPv4 public addresses have been exhausted everywhere but Africa.
IPv4 public addresses ran out at the top level (IANA) on Feb 3, 2011. That was the day IANA gave the final five remaining unallocated IPv4 /8 blocks (16.7M addresses each) to the five Regional Internet Registries: APNIC, RIPE, ARIN, LACNIC, and AfriNIC. Before, when an RIR ran out they could always ask IANA for more. IANA has no more to allocate to RIRs.
This widget shows the current state of remaining IPv4 addresses at the five RIRs as of this writing (22 Oct 2017). Most of them ceased normal allocation when they reached a certain percent of their final block. After that point, typically no customer can get more than 1000, and then only for migration to IPv6 (not for normal allocation to ISP customers).
Many telcos and ISPs had “stocked up” but many have used most or all of their stock now. Before they could ask their RIR for more, but now they are told “too bad, we don’t have any more – would you like some IPv6 instead?”
The cupboard is pretty much bare at all levels now.
Bear in mind that the public IPv4 addresses in use are still valid. There just aren’t any new ones available. Occasionally, current holders of IPv4 addresses return a block of public IPv4 addresses to their RIR. Not enough to make a real difference, but the final percentage does go up from time to time, then heads right back down. For many years, the Internet grew at an incredible, and increasing rate. Those days are over (except for adding more and more private extensions behind the remaining real addresses). If you want to set up a new ISP, forget it. No public IPv4 addresses. If you want to deploy a major new subsystem or network that needs public IPv4 addresses, forget it.
In the early days, there were some companies that got tons more addresses than they really needed (Class A blocks of 16.7M each). Some of those are now starting to sell their unneeded addresses at about US$12 an address. Even those are running low now. Microsoft bought the remaining addresses allocated to Nortel when they went bankrupt. They paid US$7.5M for 666,624 public IPv4 addresses, or about $11.25 per address.
As more and more networks shift to IPv6-only, the demand for IPv4 addresses (hence the value per address) will plummet.
Mobile nodes are going online at an incredible rate. I can’t recall ever seeing a single public IPv4 address on a mobile node. Historically mobile devices have only been able to make outgoing connections (act as clients). As the telcos begin deploying IPv6 on data plans, every device has a global address now, and can also accept incoming connections (if they can advertise that address in DNS). This completely changes things. You will be able to run a server on you mobile device, or connect directly from one mobile device to another – no intermediary server.
Core Routing Tables
Another and more subtle problem with IPv4 exhaustion is that as we reach the bottom of the barrel, we have been allocating smaller and smaller chunks. Each chunk requires an entry in the core routing tables, so that packets can be routed to them. In the early days, there were not many entries. Today there are millions. This slows things down and we could “balkanize” the Internet – Asia/Pacific could split away and become a separate public Internet. People in the rest of the world would not be able to contact people in Asia/Pacific and vice versa. Today there are over 686,103 routes in the core tables for IPv4. For IPv6, where the chunk sizes are large, there are only 43,428 entries (about 6% of that required for IPv4). Much more manageable (and faster to use).
The core routing table for IPv4 (from bgp.potaroo.net)
The core routing table for IPv6 (from bgp.potaroo.net)
Note that the IPv6 core routing tables have only about 6% of the entries found in the IPv4 core routing tables, although some 25% to 40% of the global traffic is already over IPv6.