[
  {
    "resolver_id": "google_public_dns",
    "service": "Google Public DNS",
    "primary_ip": "8.8.8.8",
    "provider": "Google",
    "positioning": "General-purpose public DNS resolver focused on reliability and technical transparency",
    "speed": "Global Anycast network (often performant depending on location)",
    "privacy": "Detailed policy: temporary logs (IP + query) deleted within 24-48h, permanent logs anonymized/aggregated for statistics",
    "filtering": "No filtering (no parental control)",
    "dns_encryption": "DoH (https://dns.google/dns-query), DoT (dns.google)",
    "dnssec": "Yes (validating)",
    "comments": "Good choice if you want comprehensive documentation and very standard DNS behavior.",
    "variant": "Standard",
    "secondary_ipv4": "8.8.4.4",
    "primary_ipv6": "2001:4860:4860::8888",
    "secondary_ipv6": "2001:4860:4860::8844",
    "doh_endpoint": "https://dns.google/dns-query",
    "dot_endpoint": "dns.google",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "Yes (per Google Public DNS policy)",
    "management": "No (public service without account)",
    "profiles": "None",
    "use_cases": "Tech enthusiasts/SMBs (baseline), debugging, stability",
    "article_link": "https://www.captaindns.com/en/blog/dns-8888-google",
    "official_sources": "https://developers.google.com/speed/public-dns; https://developers.google.com/speed/public-dns/docs/doh; https://developers.google.com/speed/public-dns/privacy"
  },
  {
    "resolver_id": "cloudflare_1111",
    "service": "Cloudflare 1.1.1.1 (Unfiltered)",
    "primary_ip": "1.1.1.1",
    "provider": "Cloudflare",
    "positioning": "Simple public resolver focused on perceived performance and privacy (no filtering)",
    "speed": "Global Anycast network (often performant depending on location)",
    "privacy": "Public commitment: limited logs, retained ~25h, with documented privacy policy",
    "filtering": "None",
    "dns_encryption": "DoH (https://cloudflare-dns.com/dns-query), DoT (one.one.one.one)",
    "dnssec": "Yes (validating)",
    "comments": "Very easy to deploy everywhere. No advanced filtering (except Families variants).",
    "variant": "Unfiltered",
    "secondary_ipv4": "1.0.0.1",
    "primary_ipv6": "2606:4700:4700::1111",
    "secondary_ipv6": "2606:4700:4700::1001",
    "doh_endpoint": "https://cloudflare-dns.com/dns-query",
    "dot_endpoint": "one.one.one.one",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "No (public resolver)",
    "management": "No (public service without account)",
    "profiles": "Unfiltered + Families variants",
    "use_cases": "Simple baseline + DoH/DoT",
    "article_link": "https://www.captaindns.com/en/blog/dns-1111-cloudflare",
    "official_sources": "https://developers.cloudflare.com/1.1.1.1/ip-addresses/; https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/; https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/"
  },
  {
    "resolver_id": "cloudflare_1111_security",
    "service": "Cloudflare 1.1.1.2 (Families: Malware)",
    "primary_ip": "1.1.1.2",
    "provider": "Cloudflare",
    "positioning": "Filtering variant (malware/phishing) without account",
    "speed": "Global Anycast network",
    "privacy": "Same privacy foundation as 1.1.1.1, with Families filtering",
    "filtering": "Malware blocking (Families)",
    "dns_encryption": "DoH (https://security.cloudflare-dns.com/dns-query), DoT (security.cloudflare-dns.com)",
    "dnssec": "Yes (validating)",
    "comments": "Simple filtering. Less flexible than a manageable service.",
    "variant": "Families - Malware",
    "secondary_ipv4": "1.0.0.2",
    "primary_ipv6": "2606:4700:4700::1112",
    "secondary_ipv6": "2606:4700:4700::1002",
    "doh_endpoint": "https://security.cloudflare-dns.com/dns-query",
    "dot_endpoint": "security.cloudflare-dns.com",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "No",
    "management": "No",
    "profiles": "Families (malware)",
    "use_cases": "Default security without account",
    "article_link": "https://www.captaindns.com/en/blog/dns-1111-cloudflare",
    "official_sources": "https://developers.cloudflare.com/1.1.1.1/ip-addresses/; https://developers.cloudflare.com/1.1.1.1/infrastructure/network-operators/"
  },
  {
    "resolver_id": "cloudflare_1111_family",
    "service": "Cloudflare 1.1.1.3 (Families: Malware + Adult)",
    "primary_ip": "1.1.1.3",
    "provider": "Cloudflare",
    "positioning": "Filtering variant (malware + adult content) without account",
    "speed": "Global Anycast network",
    "privacy": "Same privacy foundation as 1.1.1.1, with Families filtering",
    "filtering": "Malware + adult content blocking (Families)",
    "dns_encryption": "DoH (https://family.cloudflare-dns.com/dns-query), DoT (family.cloudflare-dns.com)",
    "dnssec": "Yes (validating)",
    "comments": "Basic parental control (limited categories).",
    "variant": "Families - Malware + Adult",
    "secondary_ipv4": "1.0.0.3",
    "primary_ipv6": "2606:4700:4700::1113",
    "secondary_ipv6": "2606:4700:4700::1003",
    "doh_endpoint": "https://family.cloudflare-dns.com/dns-query",
    "dot_endpoint": "family.cloudflare-dns.com",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "No",
    "management": "No",
    "profiles": "Families (malware + adult)",
    "use_cases": "Simple family use, without account",
    "article_link": "https://www.captaindns.com/en/blog/dns-1111-cloudflare",
    "official_sources": "https://developers.cloudflare.com/1.1.1.1/ip-addresses/; https://developers.cloudflare.com/1.1.1.1/infrastructure/network-operators/"
  },
  {
    "resolver_id": "quad9_9999_secure",
    "service": "Quad9 9.9.9.9 (Secure)",
    "primary_ip": "9.9.9.9",
    "provider": "Quad9 Foundation",
    "positioning": "Threat blocking + privacy-first",
    "speed": "Anycast network (extensive peering, depends on location)",
    "privacy": "Strict privacy policy: does not store IPs, limits collection to counters/statistics",
    "filtering": "Threat blocking (malware/phishing) via threat intelligence",
    "dns_encryption": "DoH (https://dns.quad9.net/dns-query), DoT (dns.quad9.net)",
    "dnssec": "Yes (validating)",
    "comments": "Excellent choice for threat blocking without account and strict privacy policy.",
    "variant": "Secure",
    "secondary_ipv4": "149.112.112.112",
    "primary_ipv6": "2620:fe::fe",
    "secondary_ipv6": "2620:fe::9",
    "doh_endpoint": "https://dns.quad9.net/dns-query",
    "dot_endpoint": "dns.quad9.net",
    "doq_endpoint": "",
    "dnscrypt": "Not documented for this service (see Quad9 docs)",
    "ecs": "No (by default)",
    "management": "No",
    "profiles": "Secure / Unfiltered + ECS variants",
    "use_cases": "DNS security without account, privacy-first",
    "article_link": "https://www.captaindns.com/en/blog/dns-9999-quad9",
    "official_sources": "https://docs.quad9.net/services/; https://quad9.net/privacy/policy/"
  },
  {
    "resolver_id": "quad9_99910_unfiltered",
    "service": "Quad9 9.9.9.10 (No Threat Blocking)",
    "primary_ip": "9.9.9.10",
    "provider": "Quad9 Foundation",
    "positioning": "Privacy-first without threat blocking",
    "speed": "Anycast network",
    "privacy": "Same privacy framework as Quad9 Secure",
    "filtering": "None",
    "dns_encryption": "DoH (https://dns10.quad9.net/dns-query), DoT (dns10.quad9.net)",
    "dnssec": "Yes (per service)",
    "comments": "Unblocked alternative when you don't want threat filtering.",
    "variant": "Unfiltered",
    "secondary_ipv4": "149.112.112.10",
    "primary_ipv6": "2620:fe::10",
    "secondary_ipv6": "2620:fe::fe:10",
    "doh_endpoint": "https://dns10.quad9.net/dns-query",
    "dot_endpoint": "dns10.quad9.net",
    "doq_endpoint": "",
    "dnscrypt": "Not documented for this service (see Quad9 docs)",
    "ecs": "No",
    "management": "No",
    "profiles": "Unfiltered",
    "use_cases": "Privacy-first baseline",
    "article_link": "https://www.captaindns.com/en/blog/dns-9999-quad9",
    "official_sources": "https://docs.quad9.net/services/"
  },
  {
    "resolver_id": "quad9_99911_secure_ecs",
    "service": "Quad9 9.9.9.11 (Secure + ECS)",
    "primary_ip": "9.9.9.11",
    "provider": "Quad9 Foundation",
    "positioning": "Secure + ECS to optimize certain CDNs",
    "speed": "Anycast network",
    "privacy": "Trade-off: ECS sends a prefix (privacy vs CDN performance)",
    "filtering": "Threat blocking + ECS",
    "dns_encryption": "DoH (https://dns11.quad9.net/dns-query), DoT (dns11.quad9.net)",
    "dnssec": "Yes (per service)",
    "comments": "Use only if you have CDN routing/performance issues with the standard service.",
    "variant": "Secure + ECS",
    "secondary_ipv4": "149.112.112.11",
    "primary_ipv6": "2620:fe::11",
    "secondary_ipv6": "2620:fe::fe:11",
    "doh_endpoint": "https://dns11.quad9.net/dns-query",
    "dot_endpoint": "dns11.quad9.net",
    "doq_endpoint": "",
    "dnscrypt": "Not documented for this service (see Quad9 docs)",
    "ecs": "Yes",
    "management": "No",
    "profiles": "Secure + ECS",
    "use_cases": "Special cases (CDN/routing)",
    "article_link": "https://www.captaindns.com/en/blog/dns-9999-quad9",
    "official_sources": "https://docs.quad9.net/services/"
  },
  {
    "resolver_id": "quad9_99912_unfiltered_ecs",
    "service": "Quad9 9.9.9.12 (Unfiltered + ECS)",
    "primary_ip": "9.9.9.12",
    "provider": "Quad9 Foundation",
    "positioning": "Unfiltered + ECS",
    "speed": "Anycast network",
    "privacy": "ECS trade-off",
    "filtering": "None (with ECS)",
    "dns_encryption": "DoH (https://dns12.quad9.net/dns-query), DoT (dns12.quad9.net)",
    "dnssec": "Yes (per service)",
    "comments": "ECS variant without threat blocking, for specific cases.",
    "variant": "Unfiltered + ECS",
    "secondary_ipv4": "149.112.112.12",
    "primary_ipv6": "2620:fe::12",
    "secondary_ipv6": "2620:fe::fe:12",
    "doh_endpoint": "https://dns12.quad9.net/dns-query",
    "dot_endpoint": "dns12.quad9.net",
    "doq_endpoint": "",
    "dnscrypt": "Not documented for this service (see Quad9 docs)",
    "ecs": "Yes",
    "management": "No",
    "profiles": "Unfiltered + ECS",
    "use_cases": "Special cases (CDN/routing)",
    "article_link": "https://www.captaindns.com/en/blog/dns-9999-quad9",
    "official_sources": "https://docs.quad9.net/services/"
  },
  {
    "resolver_id": "adguard_dns_default",
    "service": "AdGuard DNS (Default)",
    "primary_ip": "94.140.14.14",
    "provider": "AdGuard",
    "positioning": "Ad/tracker blocking + DNS protection, without account",
    "speed": "Anycast (per AdGuard infrastructure)",
    "privacy": "AdGuard policy + public service; check documentation for details",
    "filtering": "Ads/trackers (and associated protection)",
    "dns_encryption": "DoH/DoT/DoQ (+ DNSCrypt)",
    "dnssec": "Yes (DNSSEC support announced)",
    "comments": "Very effective on ads, but plan for exceptions (breakage).",
    "variant": "Default",
    "secondary_ipv4": "94.140.15.15",
    "primary_ipv6": "2a10:50c0::ad1:ff",
    "secondary_ipv6": "2a10:50c0::ad2:ff",
    "doh_endpoint": "https://dns.adguard-dns.com/dns-query",
    "dot_endpoint": "tls://dns.adguard-dns.com",
    "doq_endpoint": "quic://dns.adguard-dns.com",
    "dnscrypt": "Yes (stamp published)",
    "ecs": "Not documented",
    "management": "No (public) / Yes (private offering)",
    "profiles": "Default/Unfiltered/Family",
    "use_cases": "Network-level ad/tracker blocking",
    "article_link": "https://www.captaindns.com/en/blog/dns-adguard",
    "official_sources": "https://adguard-dns.io/en/public-dns.html; https://adguard-dns.io/en/welcome.html"
  },
  {
    "resolver_id": "adguard_dns_unfiltered",
    "service": "AdGuard DNS (Unfiltered)",
    "primary_ip": "94.140.14.140",
    "provider": "AdGuard",
    "positioning": "Resolver without filtering (privacy/transport), without account",
    "speed": "Anycast (per AdGuard infrastructure)",
    "privacy": "AdGuard policy + public service",
    "filtering": "None",
    "dns_encryption": "DoH/DoT/DoQ (+ DNSCrypt)",
    "dnssec": "Yes (DNSSEC support announced)",
    "comments": "Useful if you want encrypted transports without filtering.",
    "variant": "Unfiltered",
    "secondary_ipv4": "94.140.14.141",
    "primary_ipv6": "2a10:50c0::1:ff",
    "secondary_ipv6": "2a10:50c0::2:ff",
    "doh_endpoint": "https://unfiltered.adguard-dns.com/dns-query",
    "dot_endpoint": "tls://unfiltered.adguard-dns.com",
    "doq_endpoint": "quic://unfiltered.adguard-dns.com",
    "dnscrypt": "Yes (stamp published)",
    "ecs": "Not documented",
    "management": "No (public)",
    "profiles": "Unfiltered",
    "use_cases": "Encrypted baseline without account",
    "article_link": "https://www.captaindns.com/en/blog/dns-adguard",
    "official_sources": "https://adguard-dns.io/en/public-dns.html"
  },
  {
    "resolver_id": "adguard_dns_family",
    "service": "AdGuard DNS (Family protection)",
    "primary_ip": "94.140.14.15",
    "provider": "AdGuard",
    "positioning": "Parental control + ads, without account",
    "speed": "Anycast (per AdGuard infrastructure)",
    "privacy": "AdGuard policy + public service",
    "filtering": "Ads/trackers + adult content + SafeSearch (where possible)",
    "dns_encryption": "DoH/DoT/DoQ (+ DNSCrypt)",
    "dnssec": "Yes (DNSSEC support announced)",
    "comments": "Good family profile if you accept the risk of ad-related breakage.",
    "variant": "Family",
    "secondary_ipv4": "94.140.15.16",
    "primary_ipv6": "2a10:50c0::bad1:ff",
    "secondary_ipv6": "2a10:50c0::bad2:ff",
    "doh_endpoint": "https://family.adguard-dns.com/dns-query",
    "dot_endpoint": "tls://family.adguard-dns.com",
    "doq_endpoint": "quic://family.adguard-dns.com",
    "dnscrypt": "Yes (stamp published)",
    "ecs": "Not documented",
    "management": "No (public)",
    "profiles": "Family",
    "use_cases": "Family (adult + SafeSearch)",
    "article_link": "https://www.captaindns.com/en/blog/dns-adguard",
    "official_sources": "https://adguard-dns.io/en/public-dns.html"
  },
  {
    "resolver_id": "nextdns",
    "service": "NextDNS (customizable profile)",
    "primary_ip": "45.90.28.0",
    "provider": "NextDNS",
    "positioning": "Manageable DNS (lists, categories, logs/analytics, API)",
    "speed": "Anycast (depends on PoP), diagnostic available via test.nextdns.io",
    "privacy": "Retention controls and log options (per configuration) + published privacy policy",
    "filtering": "Highly configurable (security, ads/trackers, parental, etc.)",
    "dns_encryption": "DoH/DoT (DoQ per client/implementation) with configuration ID",
    "dnssec": "Yes (validating announced)",
    "comments": "Most flexible if you want exceptions, profiles, and visibility. Requires minimal design.",
    "variant": "Configurable",
    "secondary_ipv4": "45.90.30.0",
    "primary_ipv6": "",
    "secondary_ipv6": "",
    "doh_endpoint": "https://dns.nextdns.io/<CONFIG_ID>",
    "dot_endpoint": "tls://<DEVICE>-<CONFIG_ID>.dns.nextdns.io",
    "doq_endpoint": "quic://<DEVICE>-<CONFIG_ID>.dns.nextdns.io (per client)",
    "dnscrypt": "No (mainly DoH/DoT)",
    "ecs": "Optional/per config",
    "management": "Yes (dashboard + API)",
    "profiles": "Per configuration / per device (Device-ID)",
    "use_cases": "SMBs, power users, multi-profile, exceptions",
    "article_link": "https://www.captaindns.com/en/blog/dns-nextdns",
    "official_sources": "https://nextdns.io/privacy; https://help.nextdns.io/t/g9hmvan/what-is-linked-ip"
  },
  {
    "resolver_id": "cleanbrowsing_security",
    "service": "CleanBrowsing (Security Filter)",
    "primary_ip": "185.228.168.9",
    "provider": "CleanBrowsing",
    "positioning": "Family-oriented DNS filtering (free) + manageable paid offerings",
    "speed": "Per offering (free may be limited), Anycast per infrastructure",
    "privacy": "Variable policy and offerings; family-oriented service",
    "filtering": "Phishing/malware (no adult filtering)",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Not clearly documented (verify)",
    "comments": "Simple security profile to reduce phishing/malware.",
    "variant": "Security Filter",
    "secondary_ipv4": "185.228.169.9",
    "primary_ipv6": "2a0d:2a00:1::2",
    "secondary_ipv6": "2a0d:2a00:2::2",
    "doh_endpoint": "https://doh.cleanbrowsing.org/doh/security-filter/",
    "dot_endpoint": "security-filter-dns.cleanbrowsing.org",
    "doq_endpoint": "",
    "dnscrypt": "No on free (options per offerings)",
    "ecs": "Not documented",
    "management": "Partial (per paid offering)",
    "profiles": "Security/Adult/Family (+ others paid)",
    "use_cases": "Simple security",
    "article_link": "https://www.captaindns.com/en/blog/dns-cleanbrowsing",
    "official_sources": "https://cleanbrowsing.org/filters/"
  },
  {
    "resolver_id": "cleanbrowsing_adult",
    "service": "CleanBrowsing (Adult Filter)",
    "primary_ip": "185.228.168.10",
    "provider": "CleanBrowsing",
    "positioning": "Adult filtering (partial) + SafeSearch",
    "speed": "Per offering",
    "privacy": "Variable policy and offerings; family-oriented service",
    "filtering": "Blocks adult content (partial), SafeSearch, + threats",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Not clearly documented (verify)",
    "comments": "Allows some mixed content sites (e.g., Reddit) by design.",
    "variant": "Adult Filter",
    "secondary_ipv4": "185.228.169.11",
    "primary_ipv6": "2a0d:2a00:1::1",
    "secondary_ipv6": "2a0d:2a00:2::1",
    "doh_endpoint": "https://doh.cleanbrowsing.org/doh/adult-filter/",
    "dot_endpoint": "adult-filter-dns.cleanbrowsing.org",
    "doq_endpoint": "",
    "dnscrypt": "No on free (options per offerings)",
    "ecs": "Not documented",
    "management": "Partial (per paid offering)",
    "profiles": "Adult",
    "use_cases": "Family (less strict mode)",
    "article_link": "https://www.captaindns.com/en/blog/dns-cleanbrowsing",
    "official_sources": "https://cleanbrowsing.org/filters/"
  },
  {
    "resolver_id": "cleanbrowsing_family",
    "service": "CleanBrowsing (Family Filter)",
    "primary_ip": "185.228.168.168",
    "provider": "CleanBrowsing",
    "positioning": "Strict family filtering (adult + proxies/VPN + SafeSearch)",
    "speed": "Per offering",
    "privacy": "Variable policy and offerings; family-oriented service",
    "filtering": "Blocks adult + proxy/VPN + SafeSearch + threats",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Not clearly documented (verify)",
    "comments": "Strict profile: may block mixed content sites.",
    "variant": "Family Filter",
    "secondary_ipv4": "185.228.169.168",
    "primary_ipv6": "2a0d:2a00:1::",
    "secondary_ipv6": "2a0d:2a00:2::",
    "doh_endpoint": "https://doh.cleanbrowsing.org/doh/family-filter/",
    "dot_endpoint": "family-filter-dns.cleanbrowsing.org",
    "doq_endpoint": "",
    "dnscrypt": "No on free (options per offerings)",
    "ecs": "Not documented",
    "management": "Partial (per paid offering)",
    "profiles": "Family",
    "use_cases": "Family (strict)",
    "article_link": "https://www.captaindns.com/en/blog/dns-cleanbrowsing",
    "official_sources": "https://cleanbrowsing.org/filters/"
  },
  {
    "resolver_id": "dns4eu_protective",
    "service": "DNS4EU (Protective)",
    "primary_ip": "86.54.11.1",
    "provider": "DNS4EU / Whalebone",
    "positioning": "EU public service for citizens, focused on security + EU compliance",
    "speed": "EU servers, optimized for regional performance",
    "privacy": "Announced: IP anonymized before logging; published policy",
    "filtering": "Protection against fraudulent/malicious content",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Yes (announced)",
    "comments": "Security option without account, with clear DoH/DoT endpoints.",
    "variant": "Protective",
    "secondary_ipv4": "86.54.11.201",
    "primary_ipv6": "2a13:1001::86:54:11:1",
    "secondary_ipv6": "2a13:1001::86:54:11:201",
    "doh_endpoint": "https://protective.joindns4.eu/dns-query",
    "dot_endpoint": "protective.joindns4.eu",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "Not documented",
    "management": "No (public service)",
    "profiles": "Protective / Child / NoAds / Child+NoAds / Unfiltered",
    "use_cases": "EU general public security",
    "article_link": "https://www.captaindns.com/en/blog/dns-dns4eu",
    "official_sources": "https://www.joindns4.eu/for-public; https://www.joindns4.eu/learn/dns4eu-public-service-launched"
  },
  {
    "resolver_id": "dns4eu_child",
    "service": "DNS4EU (Protective + Child Protection)",
    "primary_ip": "86.54.11.12",
    "provider": "DNS4EU / Whalebone",
    "positioning": "EU parental control (without account)",
    "speed": "EU servers",
    "privacy": "IP anonymized before logs (announced)",
    "filtering": "Protection + inappropriate content (children)",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Yes (announced)",
    "comments": "EU family profile; ready-to-use filtering.",
    "variant": "Child",
    "secondary_ipv4": "86.54.11.212",
    "primary_ipv6": "2a13:1001::86:54:11:12",
    "secondary_ipv6": "2a13:1001::86:54:11:212",
    "doh_endpoint": "https://child.joindns4.eu/dns-query",
    "dot_endpoint": "child.joindns4.eu",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "Not documented",
    "management": "No",
    "profiles": "Child",
    "use_cases": "Family",
    "article_link": "https://www.captaindns.com/en/blog/dns-dns4eu",
    "official_sources": "https://www.joindns4.eu/for-public; https://www.joindns4.eu/learn/dns4eu-public-service-launched"
  },
  {
    "resolver_id": "dns4eu_noads",
    "service": "DNS4EU (Protective + Ad Blocking)",
    "primary_ip": "86.54.11.13",
    "provider": "DNS4EU / Whalebone",
    "positioning": "Protection + EU ad blocking (without account)",
    "speed": "EU servers",
    "privacy": "IP anonymized before logs (announced)",
    "filtering": "Protection + ad blocking",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Yes (announced)",
    "comments": "Ad blocking may break some services: plan for fallback.",
    "variant": "NoAds",
    "secondary_ipv4": "86.54.11.213",
    "primary_ipv6": "2a13:1001::86:54:11:13",
    "secondary_ipv6": "2a13:1001::86:54:11:213",
    "doh_endpoint": "https://noads.joindns4.eu/dns-query",
    "dot_endpoint": "noads.joindns4.eu",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "Not documented",
    "management": "No",
    "profiles": "NoAds",
    "use_cases": "Ads + security",
    "article_link": "https://www.captaindns.com/en/blog/dns-dns4eu",
    "official_sources": "https://www.joindns4.eu/for-public; https://www.joindns4.eu/learn/dns4eu-public-service-launched"
  },
  {
    "resolver_id": "dns4eu_child_noads",
    "service": "DNS4EU (Protective + Child + Ad Blocking)",
    "primary_ip": "86.54.11.11",
    "provider": "DNS4EU / Whalebone",
    "positioning": "EU family profile + ads (without account)",
    "speed": "EU servers",
    "privacy": "IP anonymized before logs (announced)",
    "filtering": "Protection + child + ads",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Yes (announced)",
    "comments": "Most strict profile; test before generalizing.",
    "variant": "Child+NoAds",
    "secondary_ipv4": "86.54.11.211",
    "primary_ipv6": "2a13:1001::86:54:11:11",
    "secondary_ipv6": "2a13:1001::86:54:11:211",
    "doh_endpoint": "https://child-noads.joindns4.eu/dns-query",
    "dot_endpoint": "child-noads.joindns4.eu",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "Not documented",
    "management": "No",
    "profiles": "Child+NoAds",
    "use_cases": "Family (strict)",
    "article_link": "https://www.captaindns.com/en/blog/dns-dns4eu",
    "official_sources": "https://www.joindns4.eu/for-public; https://www.joindns4.eu/learn/dns4eu-public-service-launched"
  },
  {
    "resolver_id": "dns4eu_unfiltered",
    "service": "DNS4EU (Unfiltered)",
    "primary_ip": "86.54.11.100",
    "provider": "DNS4EU / Whalebone",
    "positioning": "EU resolver without filtering (without account)",
    "speed": "EU servers",
    "privacy": "IP anonymized before logs (announced)",
    "filtering": "None",
    "dns_encryption": "DoH/DoT",
    "dnssec": "Yes (announced)",
    "comments": "EU baseline without filtering, DoH/DoT endpoints.",
    "variant": "Unfiltered",
    "secondary_ipv4": "86.54.11.200",
    "primary_ipv6": "2a13:1001::86:54:11:100",
    "secondary_ipv6": "2a13:1001::86:54:11:200",
    "doh_endpoint": "https://unfiltered.joindns4.eu/dns-query",
    "dot_endpoint": "unfiltered.joindns4.eu",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "Not documented",
    "management": "No",
    "profiles": "Unfiltered",
    "use_cases": "EU baseline",
    "article_link": "https://www.captaindns.com/en/blog/dns-dns4eu",
    "official_sources": "https://www.joindns4.eu/for-public; https://www.joindns4.eu/learn/dns4eu-public-service-launched"
  },
  {
    "resolver_id": "surfshark_dns",
    "service": "Surfshark public DNS",
    "primary_ip": "194.169.169.169",
    "provider": "Surfshark",
    "positioning": "Ultra-simple public DNS focused on privacy (without account)",
    "speed": "Global infrastructure (per Surfshark documentation)",
    "privacy": "Announces no-logs for public DNS",
    "filtering": "None",
    "dns_encryption": "DoH (public endpoint); DoT/DoQ announced (public endpoints not detailed)",
    "dnssec": "Not documented",
    "comments": "Good option if you just want to replace ISP DNS, without filtering or management.",
    "variant": "Standard",
    "secondary_ipv4": "",
    "primary_ipv6": "2a09:a707:169::",
    "secondary_ipv6": "",
    "doh_endpoint": "https://dns.surfsharkdns.com/dns-query",
    "dot_endpoint": "",
    "doq_endpoint": "",
    "dnscrypt": "No",
    "ecs": "Not documented",
    "management": "No",
    "profiles": "None",
    "use_cases": "Simple baseline, mobile",
    "article_link": "https://www.captaindns.com/en/blog/dns-surfshark-dns",
    "official_sources": "https://surfshark.com/dns; https://support.surfshark.com/hc/en-us/articles/26246613550610-What-is-Surfshark-public-DNS"
  }
]
