{
    "ok": true,
    "domain": "theonering.net",
    "generated_at": "2026-08-12T21:58:48+00:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 24,
        "label": "Critical",
        "categories": {
            "dns": 0,
            "mail": 0,
            "security": 65,
            "network": 0,
            "availability": 40
        },
        "category_weights": {
            "dns": 25,
            "mail": 20,
            "security": 25,
            "network": 10,
            "availability": 20
        },
        "items": [
            {
                "category": "dns",
                "title": "IPv4 (A)",
                "max_points": 30,
                "earned_points": 0,
                "lost_points": 30,
                "detail": "0 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": 0,
                "lost_points": 20,
                "detail": "0 NS record(s); 2 or more required."
            },
            {
                "category": "dns",
                "title": "SOA record",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10,
                "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": 0,
                "lost_points": 10,
                "detail": "Agreement between public resolvers."
            },
            {
                "category": "mail",
                "title": "MX records",
                "max_points": 20,
                "earned_points": 0,
                "lost_points": 20,
                "detail": "0 MX record(s)."
            },
            {
                "category": "mail",
                "title": "SPF",
                "max_points": 25,
                "earned_points": 0,
                "lost_points": 25,
                "detail": "SPF policy not found."
            },
            {
                "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": "87 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": 0,
                "lost_points": 35,
                "detail": "0 of 9 evaluated headers detected."
            },
            {
                "category": "network",
                "title": "PTR reverse DNS",
                "max_points": 30,
                "earned_points": 0,
                "lost_points": 30,
                "detail": "PTR not detected."
            },
            {
                "category": "network",
                "title": "IPv4 diversity",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35,
                "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": 0,
                "lost_points": 40,
                "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": 0,
                "lost_points": 20,
                "detail": "Final URL is not 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": "error",
                "title": "IPv4 (A)",
                "detail": "0 IPv4 address(es) detected.",
                "category": "dns",
                "max_points": 30,
                "earned_points": 0,
                "lost_points": 30
            },
            {
                "level": "error",
                "title": "IPv6 (AAAA)",
                "detail": "0 IPv6 address(es) detected.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10
            },
            {
                "level": "error",
                "title": "Name server redundancy",
                "detail": "0 NS record(s); 2 or more required.",
                "category": "dns",
                "max_points": 20,
                "earned_points": 0,
                "lost_points": 20
            },
            {
                "level": "error",
                "title": "SOA record",
                "detail": "Authoritative zone record.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10
            },
            {
                "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": "error",
                "title": "DNS propagation",
                "detail": "Agreement between public resolvers.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10
            },
            {
                "level": "error",
                "title": "MX records",
                "detail": "0 MX record(s).",
                "category": "mail",
                "max_points": 20,
                "earned_points": 0,
                "lost_points": 20
            },
            {
                "level": "error",
                "title": "SPF",
                "detail": "SPF policy not found.",
                "category": "mail",
                "max_points": 25,
                "earned_points": 0,
                "lost_points": 25
            },
            {
                "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": "87 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": "error",
                "title": "HTTP security headers",
                "detail": "0 of 9 evaluated headers detected.",
                "category": "security",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35
            },
            {
                "level": "error",
                "title": "PTR reverse DNS",
                "detail": "PTR not detected.",
                "category": "network",
                "max_points": 30,
                "earned_points": 0,
                "lost_points": 30
            },
            {
                "level": "error",
                "title": "IPv4 diversity",
                "detail": "Two or more IPv4 addresses receive full points.",
                "category": "network",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35
            },
            {
                "level": "error",
                "title": "IPv6 connectivity",
                "detail": "AAAA availability.",
                "category": "network",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35
            },
            {
                "level": "error",
                "title": "DNS resolution",
                "detail": "At least one address family must resolve.",
                "category": "availability",
                "max_points": 40,
                "earned_points": 0,
                "lost_points": 40
            },
            {
                "level": "ok",
                "title": "HTTP response",
                "detail": "HTTP/1.1 200 OK",
                "category": "availability",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "HTTPS final URL",
                "detail": "Final URL is not HTTPS.",
                "category": "availability",
                "max_points": 20,
                "earned_points": 0,
                "lost_points": 20
            }
        ]
    },
    "dns": {
        "records": {
            "A": [],
            "AAAA": [],
            "CNAME": [],
            "MX": [],
            "TXT": [],
            "NS": [],
            "SOA": [],
            "CAA": [],
            "DS": [],
            "DNSKEY": [],
            "RRSIG": [],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [],
        "ipv6": []
    },
    "mail": {
        "spf": "",
        "dmarc": "",
        "dkim_selector": "x",
        "dkim_host": "",
        "dkim": "",
        "spf_analysis": {
            "valid": false,
            "lookups": 0,
            "final": "",
            "message": "Not published"
        },
        "dmarc_analysis": {
            "valid": false,
            "policy": ""
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "",
        "propagation": {
            "consistent": false,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [],
                    "time_ms": 0
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [],
                    "time_ms": 0
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [],
                    "time_ms": 0
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [],
                    "time_ms": 0
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [],
                    "time_ms": 0
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "Let's Encrypt",
        "subject": "theonering.net",
        "valid_from": "2026-08-10T13:54:35+00:00",
        "valid_to": "2026-11-08T13:54:34+00:00",
        "days_remaining": 87,
        "san": [
            "theonering.net",
            "www-images.theonering.net",
            "www.theonering.net"
        ],
        "protocol": "TLSv1.3",
        "cipher": "TLS_AES_256_GCM_SHA384"
    },
    "http": {
        "url": "http://www.theonering.net/",
        "status": "HTTP/1.1 200 OK",
        "http_version": "2",
        "headers": {
            "date": "Wed, 12 Aug 2026 21:58:39 GMT",
            "server": "Apache/2.4.59 (Debian)",
            "location": "http://www.theonering.net/",
            "content-type": "text/html; charset=UTF-8",
            "vary": "accept,content-type",
            "link": "<https://wp.me/1tLoH>; rel=shortlink"
        },
        "security_checks": {
            "strict-transport-security": false,
            "content-security-policy": false,
            "x-content-type-options": false,
            "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.59 (Debian)",
        "powered_by": ""
    },
    "webpage": {
        "url": "http://www.theonering.net/",
        "title": "Lord of the Rings & Tolkien News - TheOneRing.net Fan Community",
        "description": "Stay updated on all things Tolkien – from Amazon’s Lord of the Rings series to The War of the Rohirrim, video games, and beyond. TheOneRing.net has been the fan community hub since 1999 for everything in the worlds of J.R.R. Tolkien.",
        "success": true,
        "error": "",
        "status": 206
    },
    "network": [],
    "smtp": {
        "host": "theonering.net",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 38.7,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 4002.8,
                "banner": "",
                "error": "Connection timed out"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 4004.6,
                "banner": "",
                "error": "Connection timed out"
            }
        ]
    },
    "visitor": {
        "ip": "216.73.216.204",
        "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": 69.82
}