domcheck icon indicating copy to clipboard operation
domcheck copied to clipboard

A Python library to validate the ownership of a domain using different strategies

Domcheck: Domain Ownership Validation

.. image:: https://img.shields.io/pypi/v/domcheck.svg :target: https://pypi.python.org/pypi/domcheck

.. image:: https://travis-ci.org/rs/domcheck.svg?branch=master :target: https://travis-ci.org/rs/domcheck

This Python library implements different strategies to validate the ownership of a domain name.

Available strategies

All strategies takes 3 arguments: the domain to check, a static DNS safe prefix like "yourservice-domain-verification" and a randomly generated code.

  • DNS TXT record: checks for the {prefix}-{code} string present in one of the TXT records on the domain name.
  • DNS CNAME record: checks for the existence of CNAME` record composed on the static {prefix}-{code}`` on the domain pointing to domain (usually yours) which the host is {prefix} (i.e.: {prefix}.yourdomain.com). NOTE: you may want to make sure that {prefix}.yourdomain.com resolves to something as some zone editors may check that.
  • Meta Tag: checks for the presence of a <meta name="{prefix}" content="{code}"> tag in the <head> part of the domain's home page using either HTTP or HTTPs protocols.
  • HTML File: checks for the presence of a file named {code}.html at the root of the domain's website containing the string {prefix}={code} using either HTTP or HTTPs protocols.

Usage Example

Simple usage will check the domain with all available strategies and return True if the validation passed:

.. code-block:: python

import domcheck

domain = "example.com"
prefix = "myservice-domain-verification"
code = "myserviceK2d8a0xdhh"

if domcheck.check(domain, prefix, code):
    print("This domain is verified")

You may filter strategies by passing a coma separated list of strategies:

.. code-block:: python

domcheck.check(domain, prefix, code, strategies="dns_txt,meta_tag")

Installation

To install domcheck, simply:

$ pip install domcheck

Licenses

All source code is licensed under the MIT License <https://raw.githubusercontent.com/rs/domcheck/master/LICENSE>_.