Forma eficiente e eficaz de testar nomes de domínio em lote

0

O banco de dados de anúncios bloqueadores que venho usando há anos ficou muito inchado com o tempo, e agora ele está cheio de muitos domínios obsoletos (alguns nem sequer são válidos). Eu quero reduzi-lo, mas não tenho certeza de como fazer isso.

O que eu tentei foi criar um arquivo em lote que analise o arquivo e pinte cada domínio e, em seguida, dependendo do nível de erro, grave o nome do domínio no arquivo live ou dead . Esta é uma solução decente, mas tem pelo menos alguns problemas:

  1. Não conta para servidores que descartam pings
  2. Mesmo com as opções -n 1 e -w 1000 , muitos domínios ainda demoram 10 segundos para expirar
  3. Ele testa um de cada vez, então pode levar muito tempo para terminar

Alguém tem alguma sugestão sobre como testar se uma lista de nomes de domínio está ativa? Requisitos:

  • Não importa se a solução é linha de comando ou GUI
  • Eu também não estou preocupado com a falta de alguns servidores que descartam o ICMP (o tempo é mais importante)
  • Ele não deve testar demais muitos de uma só vez, ou meu ISP não ficará satisfeito (preferivelmente configurável)
por Synetech 07.07.2016 / 18:03

1 resposta

0

Posso sugerir python? Vai atualizar esta resposta com o código testado quando eu voltar para o meu PC, mas seria algo parecido com

import requests
with open("blocklist.txt", "r") as f:
    for n in f.readLines():
        r = requests.get(n)
        if r.status_code == 200:
            m = open("good.txt", "a")
            m.write(n)
            m.close()
        else:
            m = open("bad.txt", "a")
            m.write(n)
            m.close()

Com blocklist.txt como:

google.com
testrgdjhdhdhdhhdh.com
example.com

E bom.txt:

google.com
example.com

bad.txt:

testrgdjhdhdhdhhdh.com
    
por 07.07.2016 / 18:20