1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-30 13:34:27 +01:00

Added is_private and is_loopback methods to IPv4 and IPv6 addresses.

This commit is contained in:
Matias Fontanini
2013-09-04 12:57:36 -03:00
parent b26f353e46
commit 15f2896811
7 changed files with 161 additions and 67 deletions

View File

@@ -124,6 +124,27 @@ public:
return ip_addr < rhs.ip_addr;
}
/**
* \brief Returns true if this is a private IPv4 address.
*
* This takes into account the private network ranges defined in
* RFC 1918. Therefore, this method returns true if this address
* is in any of the following network ranges, false otherwise:
*
* - 192.168.0.0/16
* - 10.0.0.0/8
* - 172.16.0.0/12
*/
bool is_private() const;
/**
* \brief Returns true if this is a loopback IPv4 address.
*
* This method returns true if this address is in the address range
* 127.0.0.0/8, false otherwise.
*/
bool is_loopback() const;
/**
* \brief Writes this address to a std::ostream.
*

View File

@@ -184,6 +184,14 @@ public:
return std::copy(begin(), end(), iter);
}
/**
* \brief Returns true if this is a loopback IPv6 address.
*
* This method returns true if this address is the ::1/128 address,
* false otherwise.
*/
bool is_loopback() const;
/**
* \brief Writes this address in hex-notation to a std::ostream.
*