Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,33 @@
F cidr_parse(str)
V (addr_str, m_str) = str.split(/)
V (a, b, c, d) = addr_str.split(.).map(Int)
V m = Int(m_str)
I m < 1 | m > 32
| a < 0 | a > 255
| b < 0 | b > 255
| c < 0 | c > 255
| d < 0 | d > 255
R (0, 0)
V mask = (-)((1 << (32 - m)) - 1)
V address = (a << 24) + (b << 16) + (c << 8) + d
address [&]= mask
R (address, m)
F cidr_format(=address, mask_length)
V d = address [&] F'F
address >>= 8
V c = address [&] F'F
address >>= 8
V b = address [&] F'F
address >>= 8
V a = address [&] F'F
R a.b.c.d/mask_length
L(test) [87.70.141.1/22,
36.18.154.103/12,
62.62.197.11/29,
67.137.119.181/4,
161.214.74.21/24,
184.232.176.184/18]
V (address, mask_length) = cidr_parse(test)
print(#<18 -> #..format(test, cidr_format(address, mask_length)))