23 if (addr.is_loopback())
25 if (addr.is_v4_mapped())
26 return isPublic(boost::asio::ip::make_address_v4(boost::asio::ip::v4_mapped, addr));
29 if (addr.is_multicast())
31 if (addr.is_unspecified())
34 auto const b = addr.to_bytes();
37 if (b[0] == 0xfe && (b[1] & 0xc0) == 0x80)
40 if (b[0] == 0x01 && b[1] == 0x00 && b[2] == 0 && b[3] == 0 && b[4] == 0 && b[5] == 0 &&
41 b[6] == 0 && b[7] == 0)
44 if (b[0] == 0x20 && b[1] == 0x01 && b[2] == 0x0d && b[3] == 0xb8)
47 if (b[0] == 0x20 && b[1] == 0x01 && b[2] == 0x00 && b[3] == 0x00)
52 if (b[0] == 0x20 && b[1] == 0x01 && b[2] == 0x00 && (b[3] & 0xf0) == 0x20)
55 if (b[0] == 0x20 && b[1] == 0x02)