Public/Resolve-ModernDnsNameDOH.ps1
|
#Function Resolve-DnsSSL{ Function Resolve-ModernDnsNameDOH { param ( [Parameter(Mandatory=$True)] [array]$domains, [Parameter()] [array]$Type = 'A', [Parameter()] [ValidateSet("CloudFlare","Google","Quad9")] [String]$Provider = "CloudFlare" ) Foreach ($domain in $domains) { switch ($Provider) { "CloudFlare" {$url = 'https://cloudflare-dns.com/dns-query?name='+$domain+'&type='+$type; break} "Google" {$url = 'https://dns.google.com/resolve?name=' + $domain + '&type='+$type; break} "Quad9" {$url = 'https://dns.quad9.net:5053/dns-query?name=' + $domain; break} } $header = @{"accept"="application/dns-json"} $response = (Invoke-WebRequest -Uri $url -Headers $header -UseBasicParsing) if ($response.Content.GetType().name -eq "Byte[]") { $json = [System.Text.Encoding]::UTF8.GetString($response.Content) } Else { $json = $response.Content } $content = $json | ConvertFrom-Json $content.Answer } } |