是的,我需要知道公共 IPv4 空間中可能的 IP 總數。
我不知道在哪里得到所有 IP地址范圍的整潔列表,所以有人可以指向我一個資源來計算這個自己或計算我的 IP 總數?
此外,通過公共 IP,我的意思是不計算保留或私有范圍的 IP地址。只有那些可以通過互聯網訪問。
根據Reserved IP addresses,有 588,514,304 個保留地址,并且由于總共有 4,294,967,296 (2 ^ 32) 個 IPv4 地址,因此有3,706,452,992個公共地址。
和太多的地址在這篇文章。
對于 IPv4,此池的大小為 32 位 (2 3 2),包含 4,294,967,296 個 IPv4 地址。
在 IPv6 的情況下
IPv6 地址空間的大小為 128 位 (2-2),包含 340,282,366,920,938,463,473,374,607,431,768,211,456 個 IPv6 地址。
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
只是對 Marko 的答案的一個小的修正:由于下一個事實,不能直接從一些一般計算中產生確切的數字:有效的 IP地址也不應該以與子網掩碼中的零序列具有相同長度的二進制 0 或 1 序列結束。
公共 IP 地址
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 生成器
生成 IP 地址和關聯的 Geo 信息的 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..org/wiki/Reserved_IP_addresses
MaxMind 地理 IP
dockerfile 導入https://www.maxmind.com/en/home提供的免費公共數據庫
本站系公益性非盈利分享網址,本文來自用戶投稿,不代表碼文網立場,如若轉載,請注明出處
評論列表(24條)