Muitas maneiras de fazer isso ... apenas alguns scripts simples. Até mesmo uma resposta do Python na questão que você referenciou.
-
Invoque o DIG várias vezes em vez de apenas uma vez com o arquivo em massa. Isso retorna 1 linha falha, 2 ou mais linhas boas. Nome do eco com base em aprovação / reprovação.
-
Use o método de pesquisa de DNS da sua linguagem de script favorita e avalie o código de retorno. Eu gosto de powershell, e para isso você usaria
[System.Net.Dns]::GetHostByAddress("fully.qualified.domain.name")
-
Invoque DIG uma vez com o arquivo em massa e regexe a saída (expressões regulares). Amostra abaixo, novamente em powershell. Se você é um cara unix, o regex também está lá. Eu usei o SED muitos anos atrás, mas provavelmente existem maneiras mais fáceis atualmente.
zz
[string]$digout = dig +noall +answer +question goodname1 goodname2 badname1 goodname3 badname2
$digout = $digout -replace ("\r\n", "")
$digout.split(";") | select-string -notmatch "\d\s+IN"
retornará:
badname1. IN A
badname2. IN A
A primeira linha atribui a saída DIG a um var como uma string NOT um array. Isso é necessário porque o regex funciona em strings e não em arrays. 2a linha remove CR / LF dessa var. Parte 3A linha divide var para que cada pergunta e sua resposta apareçam na mesma linha. A parte 3B filtra esse texto para que apenas perguntas sem resposta sejam exibidas.