1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

add IPv6 check for Link-Local unicast address

This commit is contained in:
Karas Lukáš
2019-10-01 17:08:01 +02:00
parent de247fcbc8
commit 608b48f25c
2 changed files with 13 additions and 0 deletions

View File

@@ -230,6 +230,14 @@ public:
*/
bool is_multicast() const;
/**
* \brief Return true fi this is a Link-Local unicast IPv6 address.
*
* This method returns true fi this address is in the address range
* fe80::/10, false otherwise
*/
bool is_local_unicast() const;
/**
* \brief Returns the size of an IPv6 Address.
*

View File

@@ -57,6 +57,7 @@ namespace Tins {
const IPv6Address loopback_address = "::1";
const AddressRange<IPv6Address> multicast_range = IPv6Address("ff00::") / 8;
const AddressRange<IPv6Address> local_unicast_range = IPv6Address("fe80::") / 10;
IPv6Address IPv6Address::from_prefix_length(uint32_t prefix_length) {
IPv6Address address;
@@ -138,6 +139,10 @@ bool IPv6Address::is_multicast() const {
return multicast_range.contains(*this);
}
bool IPv6Address::is_local_unicast() const {
return local_unicast_range.contains(*this);
}
ostream& operator<<(ostream& os, const IPv6Address& addr) {
return os << addr.to_string();
}