{
    "ok": true,
    "domain": "edgewall.org",
    "generated_at": "2026-08-11T02:26:47-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 70,
        "label": "Fair",
        "categories": {
            "dns": 70,
            "mail": 45,
            "security": 73,
            "network": 50,
            "availability": 100
        },
        "category_weights": {
            "dns": 25,
            "mail": 20,
            "security": 25,
            "network": 10,
            "availability": 20
        },
        "items": [
            {
                "category": "dns",
                "title": "IPv4 (A)",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0,
                "detail": "1 IPv4 address(es) detected."
            },
            {
                "category": "dns",
                "title": "IPv6 (AAAA)",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10,
                "detail": "0 IPv6 address(es) detected."
            },
            {
                "category": "dns",
                "title": "Name server redundancy",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "4 NS record(s); 2 or more required."
            },
            {
                "category": "dns",
                "title": "SOA record",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Authoritative zone record."
            },
            {
                "category": "dns",
                "title": "DNSSEC chain",
                "max_points": 15,
                "earned_points": 0,
                "lost_points": 15,
                "detail": "Both DS and DNSKEY are required."
            },
            {
                "category": "dns",
                "title": "CAA policy",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5,
                "detail": "Certificate authority restriction."
            },
            {
                "category": "dns",
                "title": "DNS propagation",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Agreement between public resolvers."
            },
            {
                "category": "mail",
                "title": "MX records",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "2 MX record(s)."
            },
            {
                "category": "mail",
                "title": "SPF",
                "max_points": 25,
                "earned_points": 25,
                "lost_points": 0,
                "detail": "SPF policy published."
            },
            {
                "category": "mail",
                "title": "DMARC",
                "max_points": 25,
                "earned_points": 0,
                "lost_points": 25,
                "detail": "DMARC policy not found."
            },
            {
                "category": "mail",
                "title": "DKIM",
                "max_points": 20,
                "earned_points": 0,
                "lost_points": 20,
                "detail": "No tested DKIM selector responded."
            },
            {
                "category": "mail",
                "title": "MTA-STS",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5,
                "detail": "Mail transport policy."
            },
            {
                "category": "mail",
                "title": "TLS-RPT",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5,
                "detail": "TLS reporting policy."
            },
            {
                "category": "security",
                "title": "Valid TLS certificate",
                "max_points": 55,
                "earned_points": 55,
                "lost_points": 0,
                "detail": "89 day(s) remaining."
            },
            {
                "category": "security",
                "title": "Certificate lifetime",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Full points require at least 30 days remaining."
            },
            {
                "category": "security",
                "title": "HTTP security headers",
                "max_points": 35,
                "earned_points": 8,
                "lost_points": 27,
                "detail": "2 of 9 evaluated headers detected."
            },
            {
                "category": "network",
                "title": "PTR reverse DNS",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0,
                "detail": "PTR: lynx.edgewall.com"
            },
            {
                "category": "network",
                "title": "IPv4 diversity",
                "max_points": 35,
                "earned_points": 20,
                "lost_points": 15,
                "detail": "Two or more IPv4 addresses receive full points."
            },
            {
                "category": "network",
                "title": "IPv6 connectivity",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35,
                "detail": "AAAA availability."
            },
            {
                "category": "availability",
                "title": "DNS resolution",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0,
                "detail": "At least one address family must resolve."
            },
            {
                "category": "availability",
                "title": "HTTP response",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0,
                "detail": "HTTP/1.1 200 OK"
            },
            {
                "category": "availability",
                "title": "HTTPS final URL",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "Final URL uses HTTPS."
            }
        ],
        "methodology": "Each category is normalized to 100. The total is the weighted sum: DNS 25%, Email 20%, Security 25%, Network 10%, Availability 20%.",
        "diagnostics": [
            {
                "level": "ok",
                "title": "IPv4 (A)",
                "detail": "1 IPv4 address(es) detected.",
                "category": "dns",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "IPv6 (AAAA)",
                "detail": "0 IPv6 address(es) detected.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10
            },
            {
                "level": "ok",
                "title": "Name server redundancy",
                "detail": "4 NS record(s); 2 or more required.",
                "category": "dns",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "SOA record",
                "detail": "Authoritative zone record.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "DNSSEC chain",
                "detail": "Both DS and DNSKEY are required.",
                "category": "dns",
                "max_points": 15,
                "earned_points": 0,
                "lost_points": 15
            },
            {
                "level": "error",
                "title": "CAA policy",
                "detail": "Certificate authority restriction.",
                "category": "dns",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5
            },
            {
                "level": "ok",
                "title": "DNS propagation",
                "detail": "Agreement between public resolvers.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "MX records",
                "detail": "2 MX record(s).",
                "category": "mail",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "SPF",
                "detail": "SPF policy published.",
                "category": "mail",
                "max_points": 25,
                "earned_points": 25,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "DMARC",
                "detail": "DMARC policy not found.",
                "category": "mail",
                "max_points": 25,
                "earned_points": 0,
                "lost_points": 25
            },
            {
                "level": "error",
                "title": "DKIM",
                "detail": "No tested DKIM selector responded.",
                "category": "mail",
                "max_points": 20,
                "earned_points": 0,
                "lost_points": 20
            },
            {
                "level": "error",
                "title": "MTA-STS",
                "detail": "Mail transport policy.",
                "category": "mail",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5
            },
            {
                "level": "error",
                "title": "TLS-RPT",
                "detail": "TLS reporting policy.",
                "category": "mail",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5
            },
            {
                "level": "ok",
                "title": "Valid TLS certificate",
                "detail": "89 day(s) remaining.",
                "category": "security",
                "max_points": 55,
                "earned_points": 55,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "Certificate lifetime",
                "detail": "Full points require at least 30 days remaining.",
                "category": "security",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "warning",
                "title": "HTTP security headers",
                "detail": "2 of 9 evaluated headers detected.",
                "category": "security",
                "max_points": 35,
                "earned_points": 8,
                "lost_points": 27
            },
            {
                "level": "ok",
                "title": "PTR reverse DNS",
                "detail": "PTR: lynx.edgewall.com",
                "category": "network",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0
            },
            {
                "level": "warning",
                "title": "IPv4 diversity",
                "detail": "Two or more IPv4 addresses receive full points.",
                "category": "network",
                "max_points": 35,
                "earned_points": 20,
                "lost_points": 15
            },
            {
                "level": "error",
                "title": "IPv6 connectivity",
                "detail": "AAAA availability.",
                "category": "network",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35
            },
            {
                "level": "ok",
                "title": "DNS resolution",
                "detail": "At least one address family must resolve.",
                "category": "availability",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "HTTP response",
                "detail": "HTTP/1.1 200 OK",
                "category": "availability",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "HTTPS final URL",
                "detail": "Final URL uses HTTPS.",
                "category": "availability",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            }
        ]
    },
    "dns": {
        "records": {
            "A": [
                "94.130.181.243"
            ],
            "AAAA": [],
            "CNAME": [],
            "MX": [
                "10 in1-smtp.messagingengine.com.",
                "20 in2-smtp.messagingengine.com."
            ],
            "TXT": [
                "\"v=spf1 include:spf.messagingengine.com ?all\""
            ],
            "NS": [
                "nsp.dnsnode.net.",
                "nsu.dnsnode.net.",
                "ns1.he.net.",
                "ns2.he.net."
            ],
            "SOA": [
                "catcher-in-the-rye.netnod.se. hostmaster.netnod.se. 2026080600 14400 3600 604800 14400"
            ],
            "CAA": [],
            "DS": [],
            "DNSKEY": [
                "256 3 13 8BWwjhgIiiEIMo23+DBEGRdYYJzaW9fFAvr94hZ68Z0IywtvpH3Bpwk5 WHCVmlIOvBHX+NscqhU7QMdPSiVscA==",
                "257 3 13 8Zg8c/PErkIm0hwNIEKnwtPBx1NJ5ZA0stwZROxTlDo+ybdTYa557ud1 uleInrbojULKELCR/bnu5ewJp7vK7g=="
            ],
            "RRSIG": [
                "SOA 13 2 3600 20260820153214 20260806140214 57902 edgewall.org. wxRSkHbfb7P32Y2x67IWmrMprG/gNJjC2VLnCctvFlySHUZgNAy+VObA jH0UXWiVp/b4GOyF/dsJOInsILR6yA==",
                "NS 13 2 300 20260820153214 20260806140214 57902 edgewall.org. k0dWCWtirFfERBJ3++O5Ii1gOIgoNxaGXdh6at38gTD527ZJWstQaBBi Is4Sxv2v96r81b/+FAqMxdTzjnt8PA==",
                "A 13 2 7200 20260820153214 20260806140214 57902 edgewall.org. 0sW+RKG8F/hdkbcOzN1aSJpVDMZIVlMv2eJpydTiuHrjxYowvDFIayGd Bp8zV4KPoAljf9KUb+sF+DY/qCRISw==",
                "TXT 13 2 86400 20260820153214 20260806140214 57902 edgewall.org. 9Uueg3cls41ke7vY9UDvtFacZzEqs9QP8nz0aM0lTrgITKScNe6Enwiu I6MXEcZ7RfteLivTMSUbVT2+MvRJ7A==",
                "MX 13 2 7200 20260820153214 20260806140214 57902 edgewall.org. NHTv9/2210k1657V6xDofv541FcuWnau7UfICiTc6gbZKu85G12phV9z I/mPlJ6JTfaL2im406dWuF+SU7eHug=="
            ],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "94.130.181.243"
        ],
        "ipv6": []
    },
    "mail": {
        "spf": "v=spf1 include:spf.messagingengine.com ?all",
        "dmarc": "",
        "dkim_selector": "x",
        "dkim_host": "",
        "dkim": "",
        "spf_analysis": {
            "valid": true,
            "lookups": 1,
            "final": "?all",
            "message": "Within the estimated limit"
        },
        "dmarc_analysis": {
            "valid": false,
            "policy": ""
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "lynx.edgewall.com",
        "propagation": {
            "consistent": true,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [
                        "94.130.181.243"
                    ],
                    "time_ms": 88.05
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "94.130.181.243"
                    ],
                    "time_ms": 78.47
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "94.130.181.243"
                    ],
                    "time_ms": 23.46
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "94.130.181.243"
                    ],
                    "time_ms": 78.53
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "94.130.181.243"
                    ],
                    "time_ms": 528.67
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "Let's Encrypt",
        "subject": "babel.edgewall.org",
        "valid_from": "2026-08-10T02:36:24-05:00",
        "valid_to": "2026-11-08T01:36:23-06:00",
        "days_remaining": 89,
        "san": [
            "babel.edgewall.org",
            "bitten.edgewall.org",
            "download.edgewall.org",
            "edgewall.org",
            "ftp.edgewall.org",
            "genshi.edgewall.org",
            "hg.edgewall.org",
            "lists.edgewall.org",
            "svn.edgewall.org",
            "trac.edgewall.org",
            "www.edgewall.org"
        ],
        "protocol": "TLSv1.2",
        "cipher": "ECDHE-RSA-AES128-GCM-SHA256"
    },
    "http": {
        "url": "https://edgewall.org/",
        "status": "HTTP/1.1 200 OK",
        "http_version": "2",
        "headers": {
            "date": "Tue, 11 Aug 2026 07:26:38 GMT",
            "server": "Apache/2.4.25 (Debian)",
            "strict-transport-security": "max-age=15768000",
            "x-content-type-options": "nosniff",
            "vary": "Cookie,User-Agent,Accept-Encoding",
            "last-modified": "Thu, 05 Jan 2017 13:19:26 GMT",
            "etag": "\"dd7-54558c01b3380\"",
            "accept-ranges": "bytes",
            "content-length": "3543",
            "connection": "close",
            "content-type": "text/html"
        },
        "security_checks": {
            "strict-transport-security": true,
            "content-security-policy": false,
            "x-content-type-options": true,
            "x-frame-options": false,
            "referrer-policy": false,
            "permissions-policy": false,
            "cross-origin-opener-policy": false,
            "cross-origin-embedder-policy": false,
            "cross-origin-resource-policy": false
        },
        "server": "Apache/2.4.25 (Debian)",
        "powered_by": ""
    },
    "webpage": {
        "url": "https://edgewall.org/",
        "title": "Edgewall Software: Home",
        "description": "Edgewall is a highly experienced team of software developers specializing in emerging internet and web technologies. We build professional, innovative and creative solutions for the web based on open source components, operating systems and frameworks.",
        "success": true,
        "error": "",
        "status": 206
    },
    "network": {
        "94.130.181.243": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        }
    },
    "smtp": {
        "host": "in1-smtp.messagingengine.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 3.6,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 4009.7,
                "banner": "",
                "error": "Connection timed out"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 4018.6,
                "banner": "",
                "error": "Connection timed out"
            }
        ]
    },
    "visitor": {
        "ip": "216.73.217.62",
        "reverse": "",
        "country": "",
        "country_code": "",
        "region": "",
        "city": "",
        "latitude": null,
        "longitude": null,
        "isp": "",
        "organization": "",
        "asn": "",
        "timezone": "",
        "browser": "Other",
        "os": "Other",
        "language": "",
        "user_agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)",
        "is_bot": true,
        "cloudflare": false
    },
    "analysis_time_ms": 85.43
}