|
|
|
@ -49,6 +49,9 @@ class Domain(MntdObject):
|
|
|
|
|
def getPK(self):
|
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
def getZone(self):
|
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
def get_absolute_url(self):
|
|
|
|
|
return reverse("domains:domain-show", args=(self.name,))
|
|
|
|
|
|
|
|
|
@ -94,6 +97,24 @@ class ReverseZone(WhoisObject):
|
|
|
|
|
def getNetwork(self):
|
|
|
|
|
return ipaddress.ip_network(self.prefix())
|
|
|
|
|
|
|
|
|
|
def getZone(self):
|
|
|
|
|
net = self.parentNet.getNetwork()
|
|
|
|
|
if net.version == 4:
|
|
|
|
|
# for these we delegate the full domain
|
|
|
|
|
if 0 < net.prefixlen < 32 and net.prefixlen % 8 == 0:
|
|
|
|
|
zoneParts = net.reverse_pointer.split(".")
|
|
|
|
|
|
|
|
|
|
return ".".join(zoneParts[1:])
|
|
|
|
|
else:
|
|
|
|
|
# return RFC2317 compliant zone
|
|
|
|
|
return net.reverse_pointer
|
|
|
|
|
else:
|
|
|
|
|
# ipv6
|
|
|
|
|
# thefuck ipaddress lib... _the_ _fuck_
|
|
|
|
|
zoneParts = net.reverse_pointer.split(".")[-2 - net.prefixlen // 4:]
|
|
|
|
|
|
|
|
|
|
return ".".join(zoneParts)
|
|
|
|
|
|
|
|
|
|
def get_absolute_url(self):
|
|
|
|
|
return reverse("domains:reversezone-show", args=(self.pk,))
|
|
|
|
|
|
|
|
|
|