markdown-link-check icon indicating copy to clipboard operation
markdown-link-check copied to clipboard

Add config option to ignore reserved IP addresses

Open rasa opened this issue 3 years ago • 1 comments

Say

  "ignoreReserved": true

?

A very complete list is at https://en.m.wikipedia.org/wiki/Reserved_IP_addresses :

IPv4

Address block	Address range	Number of addresses	Scope	Description
0.0.0.0/8	0.0.0.0–0.255.255.255	16777216	Software	Current network[3]
10.0.0.0/8	10.0.0.0–10.255.255.255	16777216	Private network	Used for local communications within a private network.[4]
100.64.0.0/10	100.64.0.0–100.127.255.255	4194304	Private network	Shared address space[5] for communications between a service provider and its subscribers when using a carrier-grade NAT.
127.0.0.0/8	127.0.0.0–127.255.255.255	16777216	Host	Used for loopback addresses to the local host.[3]
169.254.0.0/16	169.254.0.0–169.254.255.255	65536	Subnet	Used for link-local addresses[6] between two hosts on a single link when no IP address is otherwise specified, such as would have normally been retrieved from a DHCP server.
172.16.0.0/12	172.16.0.0–172.31.255.255	1048576	Private network	Used for local communications within a private network.[4]
192.0.0.0/24	192.0.0.0–192.0.0.255	256	Private network	IETF Protocol Assignments.[3]
192.0.2.0/24	192.0.2.0–192.0.2.255	256	Documentation	Assigned as TEST-NET-1, documentation and examples.[7]
192.88.99.0/24	192.88.99.0–192.88.99.255	256	Internet	Reserved.[8] Formerly used for IPv6 to IPv4 relay[9] (included IPv6 address block 2002::/16).
192.168.0.0/16	192.168.0.0–192.168.255.255	65536	Private network	Used for local communications within a private network.[4]
198.18.0.0/15	198.18.0.0–198.19.255.255	131072	Private network	Used for benchmark testing of inter-network communications between two separate subnets.[10]
198.51.100.0/24	198.51.100.0–198.51.100.255	256	Documentation	Assigned as TEST-NET-2, documentation and examples.[7]
203.0.113.0/24	203.0.113.0–203.0.113.255	256	Documentation	Assigned as TEST-NET-3, documentation and examples.[7]
224.0.0.0/4	224.0.0.0–239.255.255.255	268435456	Internet	In use for IP multicast.[11] (Former Class D network.)
233.252.0.0/24	233.252.0.0-233.252.0.255	256	Documentation	Assigned as MCAST-TEST-NET, documentation and examples.[11][12]
240.0.0.0/4	240.0.0.0–255.255.255.254	268435455	Internet	Reserved for future use.[13] (Former Class E network.)
255.255.255.255/32	255.255.255.255	1	Subnet	Reserved for the "limited broadcast" destination address.[3][14]

IPv6:

Address block (CIDR) First address Last address Number of addresses Usage Purpose
::/0 :: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 2128 Routing Default route (no specific route)
::/128 :: :: 1 Software Unspecified address
::1/128 ::1 ::1 1 Host Loopback address—a virtual interface that loops all traffic back to itself, the local host
::ffff:0:0/96 ::ffff:0.0.0.0 ::ffff:255.255.255.255 2128 − 96 = 232= 4294967296 Software IPv4-mapped addresses
::ffff:0:0:0/96 ::ffff:0:0.0.0.0 ::ffff:0:255.255.255.255 232 Software IPv4 translated addresses
64:ff9b::/96 64:ff9b::0.0.0.0 64:ff9b::255.255.255.255 232 Global Internet IPv4/IPv6 translation[15]
64:ff9b:1::/48 64:ff9b:1::0.0.0.0 64:ff9b:1:ffff:ffff:ffff:255.255.255.255 280 Private internets IPv4/IPv6 translation[16]
100::/64 100:: 100::ffff:ffff:ffff:ffff 264 Routing Discard prefix[17]
2001:0000::/32 2001:: 2001::ffff:ffff:ffff:ffff:ffff:ffff 296 Global Internet Teredo tunneling[18]
2001:20::/28 2001:20:: 2001:2f:ffff:ffff:ffff:ffff:ffff:ffff 2100 Software ORCHIDv2[19]
2001:db8::/32 2001:db8:: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 296 Documentation Addresses used in documentation and example source code[20]
2002::/16 2002:: 2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff 2112 Global Internet The 6to4 addressing scheme (deprecated)[8]
fc00::/7 fc00:: fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 2121 Private internets Unique local address[21]
fe80::/10 fe80:: fe80::ffff:ffff:ffff:ffff 264 Link Link-local address
ff00::/8 ff00:: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 2120 Global Internet Multicast address

rasa avatar Jan 29 '22 17:01 rasa

Here's a regex that covers most, if not all, of the reserved IP addresses:

^(
0?10\.|
127\.|
169\.254\.|
172\.0?1[6-9]\.|
172\.0?2[0-9]\.|
172\.0?3[01]\.|
192\.168\.|
192\.0?0?0\.0?0?[02]\.|
192\.0?88\.0?99\.|
198\.0?1[89]\.|
198\.0?51\.100\.|
203\.0?0?0\.113\.|
233\.252\.0?0?0\.|
255\.255\.255\.255|
::1|
2001:0?[dD][bB]8::|
[fF][cCdD][0-9a-fA-F]{2}:|
[fF][eE]80::
)

rasa avatar Feb 01 '22 01:02 rasa