Exemple #1
0
def add_new_domain(domain):
    """ Add a new domain to be perpetually resolved
    """

    # Check to see if this domain is already being tracked
    exists = Domain.search().filter('term', domain=domain).execute()
    if exists:
        raise DomainExists(
            f"Supplied domain {domain} is already being tracked by Darkstar")

    # This is a new domain, lets try to resolve it for the first time
    try:
        hostname, aliastlist, ipaddrlist = gethostbyname_ex(domain)
    except gaierror as e:
        current_app.logger.exception(e)
        raise e