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 [OUTPUT ...]] [-n NAMESERVER [NAMESERVER ...]] [-t TIMEOUT] [-v] [-w WAIT] [--skip-tls] [--debug] domain [domain ...] Validates and parses SPF amd DMARC DNS records positional arguments: domain one or more 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 nameserver substrings --mx MX [MX ...] approved MX hostname substrings -d, --descriptions include descriptions of DMARC tags in the JSON output -f FORMAT, --format FORMAT specify JSON or CSV screen output format -o OUTPUT [OUTPUT ...], --output OUTPUT [OUTPUT ...] one or more file paths to output to (must end in .json or .csv) (silences screen output) -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 2.0) -v, --version show program's version number and exit -w WAIT, --wait WAIT number of seconds to wait between checking domains (default 0.0) --skip-tls skip TLS/SSL testing --debug enable debugging output
$ checkdmarc fbi.gov
{
"domain": "fbi.gov",
"base_domain": "fbi.gov",
"dnssec": true,
"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"
],
"tls": true,
"starttls": true
}
],
"warnings": []
},
"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-4.2.0.tar.gz
.
File metadata
- Download URL: checkdmarc-4.2.0.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85b42fdbfba232c68fa2a2d72d6329ce1120701718472dfc0e3ce71679ac7035 |
|
MD5 | 95445cc1cefdaa593100b7e67fef4064 |
|
BLAKE2b-256 | 569b0f401e83d458f6168e31b485f5b95a90c1abb1c9afa929d068e48a4c6244 |
File details
Details for the file checkdmarc-4.2.0-py3-none-any.whl
.
File metadata
- Download URL: checkdmarc-4.2.0-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f700dcb02c7d16b5a448c70062c01d81858ce0e5a3cffa8b76f66e8375f8208e |
|
MD5 | f94afe93cae1ac83905c5816fe32c0d8 |
|
BLAKE2b-256 | 7bd1fcd47a32570db604138c50774eac0969ea8ce3c66af67520569bae8e8794 |