A Python module and command line parser for SPF and DMARC records
Project description
A Python module and command line utility for validating SPF and DMARC DNS records
usage: checkdmarc [-h] [-d] [-f FORMAT] [-o OUTPUT] [-n NAMESERVER [NAMESERVER ...]] [-t TIMEOUT] [-v] [-w WAIT] 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 -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 os seconds to wait between processing domains (default 0.0)
$ checkdmarc fbi.gov
{
"domain": "fbi.gov",
"base_domain": "fbi.gov",
"mx": {
"hosts": [
{
"preference": 10,
"hostname": "mx-east.fbi.gov",
"addresses": [
"153.31.160.5"
]
}
],
"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; adkim=r; aspf=r; rua=mailto:dmarc-feedback@fbi.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
},
"adkim": {
"value": "r",
"explicit": true
},
"aspf": {
"value": "r",
"explicit": true
},
"rua": {
"value": [
{
"scheme": "mailto",
"address": "dmarc-feedback@fbi.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
},
"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
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
checkdmarc-2.6.0.tar.gz
(17.5 kB
view details)
Built Distribution
File details
Details for the file checkdmarc-2.6.0.tar.gz
.
File metadata
- Download URL: checkdmarc-2.6.0.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d95d85d07a0382c6089f26301f0b2af3c6a476c22122fe1301d40cff71f1f70d |
|
MD5 | 44f28c3cb59cbca09631a5b09b57df41 |
|
BLAKE2b-256 | acb4bb20bd7ed70d0c5169e5508eb10391b91587ace2df573c1c903b9c854077 |
File details
Details for the file checkdmarc-2.6.0-py3-none-any.whl
.
File metadata
- Download URL: checkdmarc-2.6.0-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52049d3494857283f8605c825bf880b00c349970eea6acf29cb0a425111412da |
|
MD5 | 333f604f9b3c94a4963f481aa72c7351 |
|
BLAKE2b-256 | 71f75e345152a2e1501e19f67fd74501a17c89747e97906f687d41da22c2b7df |