log = logging.getLogger("dhcp")
+def ip_address_to_reverse_pointer(address):
+ parts = address.split(".")
+ parts.reverse()
+
+ return "%s.in-addr.arpa" % ".".join(parts)
+
+def reverse_pointer_to_ip_address(rr):
+ parts = rr.split(".")
+
+ # Only take IP address part
+ parts = reversed(parts[0:4])
+
+ return ".".join(parts)
+
class UnboundDHCPLeasesBridge(object):
def __init__(self, dhcp_leases_file, unbound_leases_file):
self.leases_file = dhcp_leases_file
(self.fqdn, "%s" % LOCAL_TTL, "IN A", self.ipaddr),
# Reverse record
- (self.ipaddr, "%s" % LOCAL_TTL, "IN PTR", self.fqdn),
+ (ip_address_to_reverse_pointer(self.ipaddr), "%s" % LOCAL_TTL,
+ "IN PTR", self.fqdn),
]
if record_type == "A":
ret[hostname] = content
elif record_type == "PTR":
- ret[content] = hostname
+ ret[content] = reverse_pointer_to_ip_address(hostname)
return ret