58

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

我不确定在哪里可以获得所有 IP 地址范围的简洁列表,所以有人可以指点我自己计算这个资源或为我计算 IP 总数吗?

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

4

5 回答 5

111

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

而且这个帖子里的地址太多了。

于 2010-03-13T03:41:53.450 回答
32

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

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

在 IPv6 的情况下

IPv6 地址空间大小为 128 位 (2¹²⁸),包含 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有完整的细节,有 IPv6 的细节。

于 2015-03-14T17:21:44.673 回答
18

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

于 2013-02-18T08:00:59.010 回答
2

公共 IP 地址

https://github.com/stephenlb/geo-ip将生成一个有效 IP 公共地址列表,包括地区。

'1.0.0.0/8'to'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 生成器

生成 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

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

{"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 地理 IP

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

于 2019-03-01T21:04:37.197 回答
0

36.81亿是目前2020年的总数。

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

于 2020-03-03T10:15:25.053 回答