Как быстрее проверять домены на Python?

#python #dns #urllib #verify

#python #dns #urllib #проверка

Вопрос:

Есть ли какой-либо способ повысить скорость проверки скриптов? Или есть другое (не sw) решение?

Я пробовал что-то подобное (но это медленно и бесполезно):

 import urllib
from socket import * 
import string, re

strings = string.ascii_lowercase
digits = string.digits

def validate(url):
    try:
        targetIP = gethostbyname(url)
        print url,' - Registered - ', targetIP
    except:
        print url," - Free"

def generate(url):

    for x in strings:      
        url_mod = "www."  x   url
        validate(url_mod)

generate("atrion.com")
  

Комментарии:

1. Я не думаю, что получение имен хостов сработает. Иногда домен может быть зарегистрирован godaddy или кем-то еще после того, как человек, который его зарегистрировал, не продлил

2. Конечно, я в курсе этого. Я написал другую функцию, проверяющую свободные домены с помощью функции validate() на некоторых серверах whois.

Ответ №1:

Поскольку ваша программа обычно ожидает сетевой активности, вы, вероятно, можете ускорить ее, запустив потоки.

Сказав это, если вы можете сделать это другим способом, это, вероятно, было бы предпочтительнее. Какую проблему вы на самом деле пытаетесь решить? Вы просто хотите узнать, какие доменные имена свободны в соответствии с приведенным вами примером, или вам нужно что-то еще?

Комментарии:

1. Ваша идея звучит интересно, надеюсь, я смогу закодировать ее таким образом. Приведенный мной пример был только для демонстрации. Я пытаюсь закодировать простую проверку домена. Код сначала проверяет существование домена, а затем, зарегистрирован ли он.

Ответ №2:

Ваша проблема со скоростью возникает из-за поиска домена в DNS, а не из Python.

Я бы попробовал настроить свою систему на использование другого DNS-сервера, такого как общедоступный DNS от Google. Обратите внимание, что это конфигурация системного уровня, а не конфигурация Python. На этой странице вы можете найти ссылку на инструкции по настройке.

Обратите также внимание, что если вы делаете много таких запросов, Google может интерпретировать это как атаку типа «отказ в обслуживании» и отключить вас. Просто К вашему сведению.

Комментарии:

1. Google DNS также работал медленно, но я попробовал OpenDNS server, который работает идеально. Спасибо за совет.