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:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user