A Python module and command line parser for SPF and DMARC records
Project description
checkdmarc
A Python module and command line utility for validating SPF and DMARC DNS records
usage: checkdmarc [-h] [-p] [--ns NS [NS ...]] [--mx MX [MX ...]] [-d] [-f FORMAT] [-o OUTPUT] [-n NAMESERVER [NAMESERVER ...]] [-t TIMEOUT] [-v] [-w WAIT] [--debug] domain [domain ...] Validates and parses SPF amd DMARC DNS records positional arguments: domain one or ore domains, or a single path to a file containing a list of domains optional arguments: -h, --help show this help message and exit -p, --parked indicate that the domains are parked --ns NS [NS ...] approved nameservers --mx MX [MX ...] approved MX hostnames -d, --descriptions include descriptions of DMARC tags in the JSON output -f FORMAT, --format FORMAT specify JSON or CSV output format -o OUTPUT, --output OUTPUT output to a file path rather than printing to the screen -n NAMESERVER [NAMESERVER ...], --nameserver NAMESERVER [NAMESERVER ...] nameservers to query (Default is Cloudflare's -t TIMEOUT, --timeout TIMEOUT number of seconds to wait for an answer from DNS (default 6.0) -v, --version show program's version number and exit -w WAIT, --wait WAIT number of seconds to wait between processing domains (default 0.0) --debug Enable debugging output
$ checkdmarc fbi.gov
{
"domain": "fbi.gov",
"base_domain": "fbi.gov",
"ns": {
"hostnames": [
"a1.fbi.gov",
"a2.fbi.gov",
"a3.fbi.gov"
],
"warnings": []
},
"mx": {
"hosts": [
{
"preference": 10,
"hostname": "mx-east.fbi.gov",
"addresses": [
"153.31.160.5"
],
"starttls": false
}
],
"warnings": [
"mx-east.fbi.gov: Connection refused"
]
},
"spf": {
"record": "v=spf1 +mx ip4:153.31.0.0/16 -all",
"valid": true,
"dns_lookups": 1,
"warnings": [],
"parsed": {
"pass": [
{
"value": "mx-east.fbi.gov",
"mechanism": "mx"
},
{
"value": "153.31.0.0/16",
"mechanism": "ip4"
}
],
"neutral": [],
"softfail": [],
"fail": [],
"include": [],
"redirect": null,
"exp": null,
"all": "fail"
}
},
"dmarc": {
"record": "v=DMARC1; p=reject; rua=mailto:dmarc-feedback@fbi.gov,mailto:reports@dmarc.cyber.dhs.gov; ruf=mailto:dmarc-feedback@fbi.gov; pct=100",
"valid": true,
"location": "fbi.gov",
"warnings": [],
"tags": {
"v": {
"value": "DMARC1",
"explicit": true
},
"p": {
"value": "reject",
"explicit": true
},
"rua": {
"value": [
{
"scheme": "mailto",
"address": "dmarc-feedback@fbi.gov",
"size_limit": null
},
{
"scheme": "mailto",
"address": "reports@dmarc.cyber.dhs.gov",
"size_limit": null
}
],
"explicit": true
},
"ruf": {
"value": [
{
"scheme": "mailto",
"address": "dmarc-feedback@fbi.gov",
"size_limit": null
}
],
"explicit": true
},
"pct": {
"value": 100,
"explicit": true
},
"adkim": {
"value": "r",
"explicit": false
},
"aspf": {
"value": "r",
"explicit": false
},
"fo": {
"value": [
"0"
],
"explicit": false
},
"rf": {
"value": [
"afrf"
],
"explicit": false
},
"ri": {
"value": 86400,
"explicit": false
},
"sp": {
"value": "reject",
"explicit": false
}
}
}
}
Installation
checkdmarc requires Python 3.
On Debian or Ubuntu systems, run:
$ sudo apt-get install python3-pip
Python 3 installers for Windows and macOS can be found at https://www.python.org/downloads/
To install or upgrade to the latest stable release of checkdmarc on macOS or Linux, run
$ sudo -H pip3 install -U checkdmarc
Or, install the latest development release directly from GitHub:
$ sudo -H pip3 install -U git+https://github.com/domainaware/checkdmarc.git
Documentation
Bug reports
Please report bugs on the GitHub issue tracker
Resources
DMARC guides
Demystifying DMARC - A complete guide to SPF, DKIM, and DMARC
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file checkdmarc-3.1.2.tar.gz
.
File metadata
- Download URL: checkdmarc-3.1.2.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.31.0 CPython/3.7.2+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3966f60628358f06f4957b4531d03105355288bd2c0e28bd6ef3b893a7b5bd6 |
|
MD5 | 1b3529eafc611aa0a8c567d1d4a3882c |
|
BLAKE2b-256 | e48c3c16088a3abd5a6303f909852a624de76b7ecc5a136f27492b6d13fb2763 |
File details
Details for the file checkdmarc-3.1.2-py3-none-any.whl
.
File metadata
- Download URL: checkdmarc-3.1.2-py3-none-any.whl
- Upload date:
- Size: 24.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.31.0 CPython/3.7.2+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 703006b1e3af5c6195bcc4a4bfea024f76616436aa1b75de3e8de64cadf36f11 |
|
MD5 | 92d84e551f4236d36d887cdb27aad1e1 |
|
BLAKE2b-256 | 8d8f7449ebff4af7e3e8d54953aa2d967fb33f8830a2d9f5b9dfa98e01a660e6 |