return turn_ip(ip)-turn_ip(other.ip);
}
+bool operator==(const IP_RANGE& a, const IP_RANGE& b)
+{
+ // == even if comparing ranges and nets possible
+ return (a.ip==b.ip && a.end==b.end);
+}
+
+bool operator<(const IP_RANGE& a, const IP_RANGE& b)
+{
+ return ((IP_RANGE::turn_ip(a.ip) < IP_RANGE::turn_ip(b.ip)) ||
+ ((a.ip==b.ip) && IP_RANGE::turn_ip(a.end) < IP_RANGE::turn_ip(b.end)));
+}
+
std::string IP_RANGE::to_string(void) const
{
struct in_addr ia_ip;
class IP_RANGE
{
friend IP_RANGE operator+(const IP_RANGE &base, const int &ips);
-
+ friend bool operator==(const IP_RANGE& a, const IP_RANGE& b);
+ friend bool operator<(const IP_RANGE& a, const IP_RANGE& b);
+
private:
unsigned int ip;
unsigned int mask;