公共IPv4地址总量是多少?

问题描述 投票:39回答:4

是的,我需要知道公共IPv4空间中可能的IP总数。

我不知道在哪里可以获得所有IP地址范围的整齐列表,所以有人可以指向我自己计算资源或计算我的IP总数吗?

此外,通过公共IP,我的意思是不计算保留或私人范围IP地址..只有可以通过互联网访问的IP地址。

ip-address ipv4
4个回答
80
投票

根据Reserved IP addresses,有588,514,304个保留地址,因为总共有4,294,967,296(2 ^ 32)个IPv4地址,所以有3,706,452,992个公共地址。

这篇文章中的地址太多了。


26
投票

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

对于IPv4,此池的大小为32位(232),包含4,294,967,296个IPv4地址。

在IPv6的情况下

IPv6地址空间大小为128位(2128),包含340,282,366,920,938,463,463,374,607,431,768,211,456个IPv6地址。

包括保留的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有详细信息,this有IPv6的详细信息。


17
投票

只是对Marko答案的一个小修正:由于下一个事实,不能通过一些通用计算直接生成确切的数字:有效的IP地址也不应该以二进制0或1的序列结束,这些序列的长度与子网中的零序列相同面具。所以最终的答案实际上取决于子网的总数(Marko的答案 - 2 *总子网数)。


1
投票

Public IP Addresses

https://github.com/stephenlb/geo-ip将生成包括地点在内的有效IP公共地址列表。

'1.0.0.0/8''191.0.0.0/8'是有效的公共IP地址范围,不包括保留的私有IP地址,如下所示:

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

生成IP地址和关联的地理信息的JSON转储。请注意,有效的公共IP地址范围是从'1.0.0.0/8''191.0.0.0/8',不包括本自述文件中较低的保留的专用IP地址范围。

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 

扫描所有有效公共地址的速度更快一些:

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

这会向STDOUT打印少于4,228,250,625个JSON行。以下是其中一行的示例:

{"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"}

专用和保留IP范围

上面的repo中的dockerfile将根据维基百科文章的指南排除不可用的IP地址:https://en.wikipedia.org/wiki/Reserved_IP_addresses

MaxMind Geo IP

dockerfile导入https://www.maxmind.com/en/home提供的免费公共数据库

© www.soinside.com 2019 - 2024. All rights reserved.