{
    "ok": true,
    "domain": "duq.edu",
    "generated_at": "2026-08-10T17:09:44-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 75,
        "label": "Good",
        "categories": {
            "dns": 75,
            "mail": 90,
            "security": 65,
            "network": 20,
            "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": "2 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": 5,
                "lost_points": 0,
                "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": "1 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": 25,
                "lost_points": 0,
                "detail": "DMARC policy published."
            },
            {
                "category": "mail",
                "title": "DKIM",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "A DKIM selector was verified."
            },
            {
                "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": "193 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": 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": "2 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": "ok",
                "title": "CAA policy",
                "detail": "Certificate authority restriction.",
                "category": "dns",
                "max_points": 5,
                "earned_points": 5,
                "lost_points": 0
            },
            {
                "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": "1 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": "ok",
                "title": "DMARC",
                "detail": "DMARC policy published.",
                "category": "mail",
                "max_points": 25,
                "earned_points": 25,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "DKIM",
                "detail": "A DKIM selector was verified.",
                "category": "mail",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            },
            {
                "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": "193 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": "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": [
                "192.88.240.53"
            ],
            "AAAA": [],
            "CNAME": [],
            "MX": [
                "20 duq-edu.mail.protection.outlook.com."
            ],
            "TXT": [
                "\"v=spf1 include:spf.protection.outlook.com include:_s00840105.autospf.email ~all\"",
                "\"d365mktkey=7QrhPJ90N01Vf0uGEdwAJKC38jpxCeWpXRQW07wOyAAx\"",
                "\"google-site-verification=ogRQ_mzSY8_UHhu_GCVzSSST8aaFhJPk1AUgGnJ77V8\"",
                "\"apple-domain-verification=1JP0L600x5324Sio\"",
                "\"d365mktkey=kkh3MAJH9brY6ioIYrSQEa7nXMH3YI95oKJClw0SFE8x\"",
                "\"wrike-verification=Njc1MDk2Nzo4ZWZiMTYzZDQ4NzExMWM2Y2E4ODY2MmEyNzU2NzQ0MWI3MDNjMDQ0NDQ4MjFhNzY0NmExMmI3ODJjZWFiNjg5\"",
                "\"jamf-site-verification=chG1lfrISWWMk8JiFsZuxA\"",
                "\"docusign=499a7108-13fb-433e-a561-e6ce1db0f081\""
            ],
            "NS": [
                "ns1.dns.duq.edu.",
                "ns2.dns.duq.edu."
            ],
            "SOA": [
                "ns1.dns.duq.edu. dns.cloudflare.com. 2411506800 10000 2400 604800 1800"
            ],
            "CAA": [
                "0 issuewild \"pki.goog; cansignhttpexchanges=yes\"",
                "0 issue \"digicert.com; cansignhttpexchanges=yes\"",
                "0 issuewild \"digicert.com; cansignhttpexchanges=yes\"",
                "0 issue \"pki.goog; cansignhttpexchanges=yes\"",
                "0 issuewild \"sectigo.com\"",
                "0 issuewild \"ssl.com\"",
                "0 issue \"ssl.com\"",
                "0 issue \"letsencrypt.org\"",
                "0 issuewild \"comodoca.com\"",
                "0 issue \"comodoca.com\"",
                "0 issuewild \"letsencrypt.org\""
            ],
            "DS": [],
            "DNSKEY": [],
            "RRSIG": [],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "192.88.240.53"
        ],
        "ipv6": []
    },
    "mail": {
        "spf": "v=spf1 include:spf.protection.outlook.com include:_s00840105.autospf.email ~all",
        "dmarc": "v=DMARC1; p=none; rua=mailto:d47d7757cd4647d2b6dd0dad9ba4f42f@dmarc-reports.cloudflare.net,mailto:rua@duq.edu; ruf=mailto:ruf@duq.edu;",
        "dkim_selector": "s1",
        "dkim_host": "s1._domainkey.duq.edu",
        "dkim": "k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1CJ6+q+N264DhEGxi92ISXCkZT+f06yc1eGBSwtRDqew9YFF9HoanGe8uEoPsUZhxP7dIIxktbM+/k4CnSgowyP+a82oMp/IzNueGSmN/mBD+v2NzYGctHBAQirflHsXncWhyW1vIJwB5YUoxqNHIGn+fI0EDyGl9bxBdP6CCaSUumGF3o95CWKuQa8N7LSikzVjNTBs1MQ0zIzUaDtP8Oejbai3x+Gallld+4jL9PkBIzzsH7tt1XjWSBcKVUBSjwBvkdohwdLHreNxHkV1wtmvhDzbnf5RSsd9i9wYYzzgmb8pJ/w58YyaEpVMieV5mgxFjD3x8mXUICC3e3dEBwIDAQAB",
        "spf_analysis": {
            "valid": true,
            "lookups": 2,
            "final": "~all",
            "message": "Within the estimated limit"
        },
        "dmarc_analysis": {
            "valid": true,
            "policy": "none"
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "",
        "propagation": {
            "consistent": true,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [
                        "192.88.240.53"
                    ],
                    "time_ms": 53.76
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "192.88.240.53"
                    ],
                    "time_ms": 53.26
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "192.88.240.53"
                    ],
                    "time_ms": 61.49
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "192.88.240.53"
                    ],
                    "time_ms": 55.95
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "192.88.240.53"
                    ],
                    "time_ms": 89.07
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "Sectigo Limited",
        "subject": "*.duq.edu",
        "valid_from": "2026-08-04T19:00:00-05:00",
        "valid_to": "2027-02-19T17:59:59-06:00",
        "days_remaining": 193,
        "san": [
            "*.duq.edu",
            "duq.edu"
        ],
        "protocol": "TLSv1.2",
        "cipher": "ECDHE-ECDSA-AES256-GCM-SHA384"
    },
    "http": {
        "url": "https://duq.edu/",
        "status": "HTTP/1.1 200 OK",
        "http_version": "2",
        "headers": {
            "content-length": "0",
            "content-type": "text/html; charset=UTF-8",
            "access-control-allow-origin": "*",
            "date": "Mon, 10 Aug 2026 22:09:35 GMT"
        },
        "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": "",
        "powered_by": ""
    },
    "webpage": {
        "url": "https://duq.edu/",
        "title": "Duquesne University",
        "description": "Founded in 1878, Duquesne is consistently ranked among the nation's top Catholic universities for its award-winning faculty and horizon-expanding education. A campus of nearly 8,000 graduate and undergraduate students, Duquesne prepares students by having them work alongside faculty to discover and reach their goals. The University's academic programs, community service and commitment to equity and opportunity in the Pittsburgh region have earned national acclaim.",
        "success": true,
        "error": "",
        "status": 200
    },
    "network": {
        "192.88.240.53": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        }
    },
    "smtp": {
        "host": "duq-edu.mail.protection.outlook.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 19.9,
                "banner": "",
                "error": "Network is unreachable"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 4055.1,
                "banner": "",
                "error": "Connection timed out"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 4020.9,
                "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": 97.26
}