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 -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,
"results": {
"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"
},
"warnings": []
},
"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",
"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
}
},
"warnings": []
}
}
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file checkdmarc-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: checkdmarc-2.0.0-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d7a93c5ae96bb3be4f8bbeb1c620495a2368b83df9c5cd494d2f4e8ee2d2f53 |
|
MD5 | da394edb304f0920a3243ad68b930901 |
|
BLAKE2b-256 | dfc006c126db8f7d06f2e86bc57ecab6328586481614d25e81c46fc9572604b2 |