def __str__(self):
return "%s" % self.address
- @property
- def reverse_pointer(self):
- return self.address.reverse_pointer
-
@property
def family(self):
if isinstance(self.address, ipaddress.IPv6Address):
# Blacklist
def _make_blacklist_rr(self, blacklist):
- rr = self.reverse_pointer.split(".")
+ if self.family == socket.AF_INET6:
+ octets = self.address.exploded.replace(":", "").split()
+ elif self.family == socket.AF_INET:
+ octets = str(self.address).split(".")
+ else:
+ raise NotImplementedError("Unknown IP protocol")
- # Remove in-addr.arpa or ip6.arpa
- for i in range(2):
- rr.pop()
+ # Reverse the list
+ octets.reverse()
- # Append new suffix
- rr.append(blacklist)
+ # Append suffix
+ octets.append(blacklist)
- return ".".join(rr)
+ return ".".join(octets)
@tornado.gen.coroutine
def _resolve_blacklist(self, blacklist):