Add script for generating martians table from IANA IP IPv[46] special registry

This commit is contained in:
Lucas 2020-08-26 17:49:06 +00:00
parent a7c8d5e369
commit 495af218be
3 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,38 @@
#!/usr/bin/env python3
import csv
import re
import sys
REGEX_FOOTNOTES = re.compile(r" \[\d+\]")
REGEX_WHITESPACES = re.compile(r"\s+")
def parse_iana_csv(csvfile):
reader = csv.DictReader(csvfile)
for row in reader:
fmt = ""
reachable = row["Globally Reachable"]
if reachable == "":
continue
if "False" in reachable:
fmt = "{}"
elif "True" in reachable:
fmt = "!{}"
elif "N/A" in reachable:
fmt = "#{}"
else:
fmt = "#[" + reachable + "]: {}"
blocks = row["Address Block"]
blocks = REGEX_FOOTNOTES.sub("", blocks)
blocks = REGEX_WHITESPACES.sub("", blocks)
for block in blocks.split(","):
print(fmt.format(block))
if __name__ == "__main__":
def usage():
print("Usage: {}".format(sys.argv[1]), file=sys.stderr)
sys.exit(1)
if len(sys.argv) != 1:
usage()
parse_iana_csv(sys.stdin)

View File

@ -0,0 +1,25 @@
Address Block,Name,RFC,Allocation Date,Termination Date,Source,Destination,Forwardable,Globally Reachable,Reserved-by-Protocol
0.0.0.0/8,"""This host on this network""","[RFC1122], Section 3.2.1.3",1981-09,N/A,True,False,False,False,True
10.0.0.0/8,Private-Use,[RFC1918],1996-02,N/A,True,True,True,False,False
100.64.0.0/10,Shared Address Space,[RFC6598],2012-04,N/A,True,True,True,False,False
127.0.0.0/8,Loopback,"[RFC1122], Section 3.2.1.3",1981-09,N/A,False [1],False [1],False [1],False [1],True
169.254.0.0/16,Link Local,[RFC3927],2005-05,N/A,True,True,False,False,True
172.16.0.0/12,Private-Use,[RFC1918],1996-02,N/A,True,True,True,False,False
192.0.0.0/24 [2],IETF Protocol Assignments,"[RFC6890], Section 2.1",2010-01,N/A,False,False,False,False,False
192.0.0.0/29,IPv4 Service Continuity Prefix,[RFC7335],2011-06,N/A,True,True,True,False,False
192.0.0.8/32,IPv4 dummy address,[RFC7600],2015-03,N/A,True,False,False,False,False
192.0.0.9/32,Port Control Protocol Anycast,[RFC7723],2015-10,N/A,True,True,True,True,False
192.0.0.10/32,Traversal Using Relays around NAT Anycast,[RFC8155],2017-02,N/A,True,True,True,True,False
"192.0.0.170/32, 192.0.0.171/32",NAT64/DNS64 Discovery,"[RFC-cheshire-sudn-ipv4only-dot-arpa-17][RFC7050], Section 2.2",2013-02,N/A,False,False,False,False,True
192.0.2.0/24,Documentation (TEST-NET-1),[RFC5737],2010-01,N/A,False,False,False,False,False
192.31.196.0/24,AS112-v4,[RFC7535],2014-12,N/A,True,True,True,True,False
192.52.193.0/24,AMT,[RFC7450],2014-12,N/A,True,True,True,True,False
192.88.99.0/24,Deprecated (6to4 Relay Anycast),[RFC7526],2001-06,2015-03,,,,,
192.168.0.0/16,Private-Use,[RFC1918],1996-02,N/A,True,True,True,False,False
192.175.48.0/24,Direct Delegation AS112 Service,[RFC7534],1996-01,N/A,True,True,True,True,False
198.18.0.0/15,Benchmarking,[RFC2544],1999-03,N/A,True,True,True,False,False
198.51.100.0/24,Documentation (TEST-NET-2),[RFC5737],2010-01,N/A,False,False,False,False,False
203.0.113.0/24,Documentation (TEST-NET-3),[RFC5737],2010-01,N/A,False,False,False,False,False
240.0.0.0/4,Reserved,"[RFC1112], Section 4",1989-08,N/A,False,False,False,False,True
255.255.255.255/32,Limited Broadcast,"[RFC8190]
[RFC919], Section 7",1984-10,N/A,False,True,False,False,True
1 Address Block Name RFC Allocation Date Termination Date Source Destination Forwardable Globally Reachable Reserved-by-Protocol
2 0.0.0.0/8 "This host on this network" [RFC1122], Section 3.2.1.3 1981-09 N/A True False False False True
3 10.0.0.0/8 Private-Use [RFC1918] 1996-02 N/A True True True False False
4 100.64.0.0/10 Shared Address Space [RFC6598] 2012-04 N/A True True True False False
5 127.0.0.0/8 Loopback [RFC1122], Section 3.2.1.3 1981-09 N/A False [1] False [1] False [1] False [1] True
6 169.254.0.0/16 Link Local [RFC3927] 2005-05 N/A True True False False True
7 172.16.0.0/12 Private-Use [RFC1918] 1996-02 N/A True True True False False
8 192.0.0.0/24 [2] IETF Protocol Assignments [RFC6890], Section 2.1 2010-01 N/A False False False False False
9 192.0.0.0/29 IPv4 Service Continuity Prefix [RFC7335] 2011-06 N/A True True True False False
10 192.0.0.8/32 IPv4 dummy address [RFC7600] 2015-03 N/A True False False False False
11 192.0.0.9/32 Port Control Protocol Anycast [RFC7723] 2015-10 N/A True True True True False
12 192.0.0.10/32 Traversal Using Relays around NAT Anycast [RFC8155] 2017-02 N/A True True True True False
13 192.0.0.170/32, 192.0.0.171/32 NAT64/DNS64 Discovery [RFC-cheshire-sudn-ipv4only-dot-arpa-17][RFC7050], Section 2.2 2013-02 N/A False False False False True
14 192.0.2.0/24 Documentation (TEST-NET-1) [RFC5737] 2010-01 N/A False False False False False
15 192.31.196.0/24 AS112-v4 [RFC7535] 2014-12 N/A True True True True False
16 192.52.193.0/24 AMT [RFC7450] 2014-12 N/A True True True True False
17 192.88.99.0/24 Deprecated (6to4 Relay Anycast) [RFC7526] 2001-06 2015-03
18 192.168.0.0/16 Private-Use [RFC1918] 1996-02 N/A True True True False False
19 192.175.48.0/24 Direct Delegation AS112 Service [RFC7534] 1996-01 N/A True True True True False
20 198.18.0.0/15 Benchmarking [RFC2544] 1999-03 N/A True True True False False
21 198.51.100.0/24 Documentation (TEST-NET-2) [RFC5737] 2010-01 N/A False False False False False
22 203.0.113.0/24 Documentation (TEST-NET-3) [RFC5737] 2010-01 N/A False False False False False
23 240.0.0.0/4 Reserved [RFC1112], Section 4 1989-08 N/A False False False False True
24 255.255.255.255/32 Limited Broadcast [RFC8190] [RFC919], Section 7 1984-10 N/A False True False False True

View File

@ -0,0 +1,23 @@
Address Block,Name,RFC,Allocation Date,Termination Date,Source,Destination,Forwardable,Globally Reachable,Reserved-by-Protocol
::1/128,Loopback Address,[RFC4291],2006-02,N/A,False,False,False,False,True
::/128,Unspecified Address,[RFC4291],2006-02,N/A,True,False,False,False,True
::ffff:0:0/96,IPv4-mapped Address,[RFC4291],2006-02,N/A,False,False,False,False,True
64:ff9b::/96,IPv4-IPv6 Translat.,[RFC6052],2010-10,N/A,True,True,True,True,False
64:ff9b:1::/48,IPv4-IPv6 Translat.,[RFC8215],2017-06,N/A,True,True,True,False,False
100::/64,Discard-Only Address Block,[RFC6666],2012-06,N/A,True,True,True,False,False
2001::/23,IETF Protocol Assignments,[RFC2928],2000-09,N/A,False [1],False [1],False [1],False [1],False
2001::/32,TEREDO,"[RFC4380]
[RFC8190]",2006-01,N/A,True,True,True,N/A [2],False
2001:1::1/128,Port Control Protocol Anycast,[RFC7723],2015-10,N/A,True,True,True,True,False
2001:1::2/128,Traversal Using Relays around NAT Anycast,[RFC8155],2017-02,N/A,True,True,True,True,False
2001:2::/48,Benchmarking,[RFC5180][RFC Errata 1752],2008-04,N/A,True,True,True,False,False
2001:3::/32,AMT,[RFC7450],2014-12,N/A,True,True,True,True,False
2001:4:112::/48,AS112-v6,[RFC7535],2014-12,N/A,True,True,True,True,False
2001:10::/28,Deprecated (previously ORCHID),[RFC4843],2007-03,2014-03,,,,,
2001:20::/28,ORCHIDv2,[RFC7343],2014-07,N/A,True,True,True,True,False
2001:db8::/32,Documentation,[RFC3849],2004-07,N/A,False,False,False,False,False
2002::/16 [3],6to4,[RFC3056],2001-02,N/A,True,True,True,N/A [3],False
2620:4f:8000::/48,Direct Delegation AS112 Service,[RFC7534],2011-05,N/A,True,True,True,True,False
fc00::/7,Unique-Local,"[RFC4193]
[RFC8190]",2005-10,N/A,True,True,True,False [4],False
fe80::/10,Link-Local Unicast,[RFC4291],2006-02,N/A,True,True,False,False,True
1 Address Block Name RFC Allocation Date Termination Date Source Destination Forwardable Globally Reachable Reserved-by-Protocol
2 ::1/128 Loopback Address [RFC4291] 2006-02 N/A False False False False True
3 ::/128 Unspecified Address [RFC4291] 2006-02 N/A True False False False True
4 ::ffff:0:0/96 IPv4-mapped Address [RFC4291] 2006-02 N/A False False False False True
5 64:ff9b::/96 IPv4-IPv6 Translat. [RFC6052] 2010-10 N/A True True True True False
6 64:ff9b:1::/48 IPv4-IPv6 Translat. [RFC8215] 2017-06 N/A True True True False False
7 100::/64 Discard-Only Address Block [RFC6666] 2012-06 N/A True True True False False
8 2001::/23 IETF Protocol Assignments [RFC2928] 2000-09 N/A False [1] False [1] False [1] False [1] False
9 2001::/32 TEREDO [RFC4380] [RFC8190] 2006-01 N/A True True True N/A [2] False
10 2001:1::1/128 Port Control Protocol Anycast [RFC7723] 2015-10 N/A True True True True False
11 2001:1::2/128 Traversal Using Relays around NAT Anycast [RFC8155] 2017-02 N/A True True True True False
12 2001:2::/48 Benchmarking [RFC5180][RFC Errata 1752] 2008-04 N/A True True True False False
13 2001:3::/32 AMT [RFC7450] 2014-12 N/A True True True True False
14 2001:4:112::/48 AS112-v6 [RFC7535] 2014-12 N/A True True True True False
15 2001:10::/28 Deprecated (previously ORCHID) [RFC4843] 2007-03 2014-03
16 2001:20::/28 ORCHIDv2 [RFC7343] 2014-07 N/A True True True True False
17 2001:db8::/32 Documentation [RFC3849] 2004-07 N/A False False False False False
18 2002::/16 [3] 6to4 [RFC3056] 2001-02 N/A True True True N/A [3] False
19 2620:4f:8000::/48 Direct Delegation AS112 Service [RFC7534] 2011-05 N/A True True True True False
20 fc00::/7 Unique-Local [RFC4193] [RFC8190] 2005-10 N/A True True True False [4] False
21 fe80::/10 Link-Local Unicast [RFC4291] 2006-02 N/A True True False False True