diff --git a/ipranges.py b/ipranges.py index f4532b915ece22160d77f5f1f4816a1c18731353..722436352cb97ea96653944889d3f6a316d0c2ae 100644 --- a/ipranges.py +++ b/ipranges.py @@ -26,8 +26,15 @@ class Range(object): return self.high() - self.low() + 1 def __eq__(self, other): - if isinstance(other, (IPRangeBase, IPNetBase, IPAddrBase)): - return (self.low() == other.low() and self.high() == other.high()) + if ( + hasattr(self, "single") + and hasattr(other, "single") + and ( + issubclass(self.single, other.single) + or issubclass(self.single, other.single) + ) + ): + return self.low() == other.low() and self.high() == other.high() return False def __ne__(self, other):