What is the total amount of public IPv4 addresses?

Ip AddressIpv4

Ip Address Problem Overview


Yes, I am needing to know what the total number possible IPs in the public IPv4 space.

I'm not sure where to even get a neat list of all the IP address ranges, so could someone point me to a resource to calculate this myself or calculate the total number of IPs for me?

Also, by Public IPs I mean not counting reserved or private-range IP addresses.. Only the ones that can be access through the internet.

Ip Address Solutions


Solution 1 - Ip Address

According to Reserved IP addresses there are 588,514,304 reserved addresses and since there are 4,294,967,296 (2^32) IPv4 addressess in total, there are 3,706,452,992 public addresses.

And too many addresses in this post.

Solution 2 - Ip Address

https://www.ripe.net/internet-coordination/press-centre/understanding-ip-addressing

> For IPv4, this pool is 32-bits (2³²) in size and contains 4,294,967,296 IPv4 addresses.

In case of IPv6 >The IPv6 address space is 128-bits (2¹²⁸) in size, containing 340,282,366,920,938,463,463,374,607,431,768,211,456 IPv6 addresses.

inclusive of RESERVED IP

 Reserved address blocks
 Range	Description	Reference

 0.0.0.0/8	Current network (only valid as source address)	RFC 6890
 10.0.0.0/8	Private network	RFC 1918
 100.64.0.0/10	Shared Address Space	RFC 6598
 127.0.0.0/8	Loopback	RFC 6890
 169.254.0.0/16	Link-local	RFC 3927
 172.16.0.0/12	Private network	RFC 1918
 192.0.0.0/24	IETF Protocol Assignments	RFC 6890
 192.0.2.0/24	TEST-NET-1, documentation and examples	RFC 5737
 192.88.99.0/24	IPv6 to IPv4 relay (includes 2002::/16)	RFC 3068
 192.168.0.0/16	Private network	RFC 1918
 198.18.0.0/15	Network benchmark tests	RFC 2544
 198.51.100.0/24	TEST-NET-2, documentation and examples	RFC 5737
 203.0.113.0/24	TEST-NET-3, documentation and examples	RFC 5737
 224.0.0.0/4	IP multicast (former Class D network)	RFC 5771
 240.0.0.0/4	Reserved (former Class E network)	RFC 1700
 255.255.255.255	Broadcast	RFC 919

wiki has full details and this has details of IPv6.

Solution 3 - Ip Address

Just a small correction for Marko's answer: exact number can't be produced out of some general calculations straight forward due to the next fact: Valid IP addresses should also not end with binary 0 or 1 sequences that have same length as zero sequence in subnet mask. So the final answer really depends on the total number of subnets (Marko's answer - 2 * total subnet count).

Solution 4 - Ip Address

Public IP Addresses

> https://github.com/stephenlb/geo-ip will generate a list of Valid IP Public Addresses including Localities.

'1.0.0.0/8' to '191.0.0.0/8' are the valid public IP Address range exclusive of the reserved Private IP Addresses as follows:

import iptools
## Private IP Addresses
private_ips = iptools.IpRangeList(
    '0.0.0.0/8',      '10.0.0.0/8',     '100.64.0.0/10', '127.0.0.0/8',
    '169.254.0.0/16', '172.16.0.0/12',  '192.0.0.0/24',  '192.0.2.0/24',
    '192.88.99.0/24', '192.168.0.0/16', '198.18.0.0/15', '198.51.100.0/24',
    '203.0.113.0/24', '224.0.0.0/4',    '240.0.0.0/4',   '255.255.255.255/32'
)

IP Generator

Generates a JSON dump of IP Addresses and associated Geo information. Note that the valid public IP Address range is from '1.0.0.0/8' to '191.0.0.0/8' excluding the reserved Private IP Address ranges shown lower down in this readme.

docker build -t geo-ip .
docker run -e IPRANGE='54.0.0.0/30' geo-ip               ## a few IPs
docker run -e IPRANGE='54.0.0.0/26' geo-ip               ## a few more IPs
docker run -e IPRANGE='54.0.0.0/16' geo-ip               ## a lot more IPs
docker run -e IPRANGE='0.0.0.0/0'   geo-ip               ## ALL IPs ( slooooowwwwww )
docker run -e IPRANGE='0.0.0.0/0'   geo-ip > geo-ip.json ## ALL IPs saved to JSON File
docker run geo-ip 

A little faster option for scanning all valid public addresses:

for i in $(seq 1 191); do \
    docker run -e IPRANGE="$i.0.0.0/8" geo-ip; \
    sleep 1; \ 
done

This prints less than 4,228,250,625 JSON lines to STDOUT. Here is an example of one of the lines:

{"city": "Palo Alto", "ip": "0.0.0.0", "longitude": -122.1274,
 "continent": "North America", "continent_code": "NA",
 "state": "California", "country": "United States", "latitude": 37.418,
 "iso_code": "US", "state_code": "CA", "aso": "PubNub",
 "asn": "11404", "zip_code": "94107"}

Private and Reserved IP Range

The dockerfile in the repo above will exclude non-usable IP addresses following the guide from the wikipedia article: https://en.wikipedia.org/wiki/Reserved_IP_addresses

MaxMind Geo IP

The dockerfile imports a free public Database provided by https://www.maxmind.com/en/home

Solution 5 - Ip Address

3.681 billion is the current total in the year 2020.

Source: https://blog.apnic.net/2020/01/21/addressing-2019/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEarlzView Question on Stackoverflow
Solution 1 - Ip AddressMarkoView Answer on Stackoverflow
Solution 2 - Ip AddressganeshView Answer on Stackoverflow
Solution 3 - Ip AddressAndriy KView Answer on Stackoverflow
Solution 4 - Ip AddressStephen BlumView Answer on Stackoverflow
Solution 5 - Ip AddresscndView Answer on Stackoverflow