onedns/onedns/utils.py

49 lines
1.1 KiB
Python

import os
import dns.name
import dns.reversename
import dnslib
from IPy import IP
from onedns.logger import log
def get_fqdn(name, domain):
domain = dnslib.DNSLabel(domain)
name = dnslib.DNSLabel(name)
if name.label[-1 * len(domain.label):] != domain.label:
return dnslib.DNSLabel(name.label + domain.label).idna()
else:
return name.idna()
def reverse_to_ip(reverse):
rname = dns.name.Name(reverse.split('.'))
return IP(dns.reversename.to_address(rname))
def get_kwargs_from_dict(d, prefix, lower=False):
tups_list = []
for i in d:
if i.startswith(prefix):
arg = i.replace(prefix, '')
if lower:
arg = arg.lower()
tups_list.append((arg, d[i]))
return dict(tups_list)
def get_kwargs_from_env(prefix, lower=False):
return get_kwargs_from_dict(os.environ, prefix, lower=lower)
def shell(local_ns={}):
try:
from IPython import embed
return embed(user_ns=local_ns)
except ImportError as e:
log.error("Unable to load IPython:\n\n%s\n" % e)
log.error("Please check that IPython is installed and working.")