I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit f9571740 authored by zzz's avatar zzz
Browse files

address check cleanup

parent eb2af2b5
No related branches found
No related tags found
No related merge requests found
...@@ -131,25 +131,29 @@ public abstract class TransportUtil { ...@@ -131,25 +131,29 @@ public abstract class TransportUtil {
// IPv4 compat ::xxxx:xxxx // IPv4 compat ::xxxx:xxxx
if (addr[0] == 0) if (addr[0] == 0)
return false; return false;
// disallow 2002::/16 (6to4 RFC 3056) if (addr[0] == 0x20) {
if (addr[0] == 0x20 && addr[1] == 0x02) // disallow 2002::/16 (6to4 RFC 3056)
return false; if (addr[1] == 0x02)
return false;
if (addr[1] == 0x01) {
// disallow 2001:0::/32 (Teredo RFC 4380)
if (addr[2] == 0x00 && addr[3] == 0x00)
return false;
// Documenation (example) RFC 3849
if (addr[2] == 0x0d && (addr[3] & 0xff) == 0xb8)
return false;
}
}
// disallow fc00::/8 and fd00::/8 (Unique local addresses RFC 4193) // disallow fc00::/8 and fd00::/8 (Unique local addresses RFC 4193)
// not recognized as local by InetAddress // not recognized as local by InetAddress
if ((addr[0] & 0xfe) == 0xfc) if ((addr[0] & 0xfe) == 0xfc)
return false; return false;
// disallow 2001:0::/32 (Teredo RFC 4380)
if (addr[0] == 0x20 && addr[1] == 0x01 && addr[2] == 0x00 && addr[3] == 0x00)
return false;
// Hamachi IPv6 // Hamachi IPv6
if (addr[0] == 0x26 && addr[1] == 0x20 && addr[2] == 0x00 && (addr[3] & 0xff) == 0x9b) if (addr[0] == 0x26 && addr[1] == 0x20 && addr[2] == 0x00 && (addr[3] & 0xff) == 0x9b)
return false; return false;
// 6bone RFC 2471 // 6bone RFC 2471
if (addr[0] == 0x3f && (addr[1] & 0xff) == 0xfe) if (addr[0] == 0x3f && (addr[1] & 0xff) == 0xfe)
return false; return false;
// Documenation (example) RFC 3849
if (addr[0] == 0x20 && addr[1] == 0x01 && addr[2] == 0x0d && (addr[3] & 0xff) == 0xb8)
return false;
try { try {
InetAddress ia = InetAddress.getByAddress(addr); InetAddress ia = InetAddress.getByAddress(addr);
return return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment