Page MenuHomePhabricator
Authored By
Volans
Aug 7 2020, 11:15 AM
Size
1 KB
Referenced Files
None
Subscribers
None
>>> import ipaddress
>>>
>>> from time import sleep
>>>
>>> from dns import resolver
>>>
>>> ips = IPAddress.objects.filter(status='active', dns_name='')
>>> print(f'Found {len(ips)} IPs')
Found 523 IPs
>>> dns_resolver = resolver.Resolver()
>>>
>>>
>>> def resolve_ptr(ip):
... targets = []
... try:
... rr = dns_resolver.query(ipaddress.ip_interface(ip).ip.reverse_pointer, 'PTR')
... except resolver.NXDOMAIN:
... print(f'No records for {ip}, skipping')
... return []
... except resolver.NoNameservers:
... print(f'No reply for {ip}, not in our space?')
... return []
... for rdata in rr:
... target = rdata.target.to_text()
... if target[-1] != '.':
... print(f'Skipping relative name {target}')
... continue
... targets.append(target[:-1])
... if len(targets) != 1:
... print(f'ERROR: Found {len(targets)} names for {ip}, skipping: {targets}')
... return []
... return targets
...
>>> for ip in ips:
... if ip.device.device_role.slug == 'server':
... print(f'Skipping ip {ip}')
... continue
... targets = resolve_ptr(ip)
... if targets:
... #ip.dns_name = targets[0]
... #ip.save()
... print(f'Set DNS name for {ip} to {targets[0]}')
... sleep(0.2)
...

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
8491334
Default Alt Text
raw.txt (1 KB)

Event Timeline