dnsglobe 0.1.1

Global DNS propagation checker TUI — watch a DNS record propagate across 34 public resolvers worldwide, on a world map in your terminal
/// Public DNS resolvers spread across regions. Anycast networks are marked as
/// such — the answering node is the one nearest to you, so "location" is the
/// operator's home region, not necessarily where the query lands. Lat/lon are
/// therefore indicative, used for the world-map view.
///
/// Every entry has been verified to answer external queries over UDP/TCP 53.
/// Africa currently has no reliable open Do53 resolver (large ISPs there
/// refuse external queries); coverage comes from the anycast networks' POPs.
pub struct Resolver {
    pub name: &'static str,
    pub location: &'static str,
    pub ip: &'static str,
    pub lat: f64,
    pub lon: f64,
}

pub const RESOLVERS: &[Resolver] = &[
    // Global anycast
    Resolver { name: "Google Public DNS", location: "Anycast", ip: "8.8.8.8", lat: 37.4, lon: -122.1 },
    Resolver { name: "Cloudflare", location: "Anycast", ip: "1.1.1.1", lat: 37.8, lon: -122.4 },
    Resolver { name: "Quad9", location: "CH/Any", ip: "9.9.9.9", lat: 47.4, lon: 8.5 },
    Resolver { name: "OpenDNS (Cisco)", location: "US/Any", ip: "208.67.222.222", lat: 33.9, lon: -118.2 },
    Resolver { name: "CleanBrowsing", location: "Anycast", ip: "185.228.168.9", lat: 33.4, lon: -112.0 },
    // North America
    Resolver { name: "Level3", location: "US", ip: "4.2.2.2", lat: 39.7, lon: -105.0 },
    Resolver { name: "Lumen (Qwest)", location: "US", ip: "205.171.3.66", lat: 40.4, lon: -104.0 },
    Resolver { name: "Hurricane Electric", location: "US", ip: "74.82.42.42", lat: 37.6, lon: -122.0 },
    Resolver { name: "Neustar UltraDNS", location: "US/Any", ip: "64.6.64.6", lat: 39.0, lon: -77.5 },
    Resolver { name: "Comodo Secure DNS", location: "US", ip: "8.26.56.26", lat: 40.9, lon: -74.2 },
    Resolver { name: "FortiGuard", location: "US/Any", ip: "208.91.112.53", lat: 37.3, lon: -121.9 },
    Resolver { name: "CIRA Canadian Shield", location: "CA", ip: "149.112.121.10", lat: 45.4, lon: -75.7 },
    Resolver { name: "ControlD", location: "CA/Any", ip: "76.76.2.0", lat: 43.7, lon: -79.4 },
    // Europe
    Resolver { name: "DNS4EU", location: "EU/Any", ip: "86.54.11.100", lat: 50.1, lon: 14.4 },
    Resolver { name: "CZ.NIC ODVR", location: "CZ", ip: "193.17.47.1", lat: 49.9, lon: 15.3 },
    Resolver { name: "AdGuard DNS", location: "EU/Any", ip: "94.140.14.14", lat: 34.7, lon: 33.0 },
    Resolver { name: "Gcore DNS", location: "LU/Any", ip: "95.85.95.85", lat: 49.6, lon: 6.1 },
    Resolver { name: "DNS.SB", location: "DE/Any", ip: "185.222.222.222", lat: 50.1, lon: 8.7 },
    // Russia / Middle East
    Resolver { name: "SafeDNS", location: "RU", ip: "195.46.39.39", lat: 55.8, lon: 37.6 },
    Resolver { name: "Yandex DNS", location: "RU", ip: "77.88.8.8", lat: 55.6, lon: 37.9 },
    Resolver { name: "Comss.one", location: "RU", ip: "83.220.169.155", lat: 56.3, lon: 38.1 },
    Resolver { name: "Bezeq Intl", location: "IL", ip: "192.115.106.10", lat: 32.1, lon: 34.8 },
    // East Asia
    Resolver { name: "114DNS", location: "CN", ip: "114.114.114.114", lat: 32.1, lon: 118.8 },
    Resolver { name: "AliDNS", location: "CN", ip: "223.5.5.5", lat: 30.3, lon: 120.2 },
    Resolver { name: "DNSPod (Tencent)", location: "CN", ip: "119.29.29.29", lat: 22.5, lon: 114.1 },
    Resolver { name: "Baidu DNS", location: "CN", ip: "180.76.76.76", lat: 39.9, lon: 116.4 },
    Resolver { name: "CNNIC sDNS", location: "CN", ip: "1.2.4.8", lat: 40.5, lon: 116.9 },
    Resolver { name: "360 Secure DNS", location: "CN", ip: "101.226.4.6", lat: 31.2, lon: 121.5 },
    Resolver { name: "KT (Kornet)", location: "KR", ip: "168.126.63.1", lat: 37.6, lon: 127.0 },
    Resolver { name: "LG U+", location: "KR", ip: "164.124.101.2", lat: 36.5, lon: 127.9 },
    Resolver { name: "HiNet (Chunghwa)", location: "TW", ip: "168.95.1.1", lat: 25.0, lon: 121.6 },
    // Southern hemisphere
    Resolver { name: "Telstra", location: "AU", ip: "139.130.4.4", lat: -33.9, lon: 151.2 },
    Resolver { name: "SafeSurfer", location: "NZ", ip: "104.197.28.121", lat: -36.8, lon: 174.8 },
    Resolver { name: "UOL", location: "BR", ip: "200.221.11.100", lat: -23.5, lon: -46.6 },
];