Питон | Проверьте, существует ли сайт по IP-адресу - PullRequest
0 голосов
/ 16 июня 2019

У меня есть несколько миллионов IPv4-адресов в файле .txt, например:

x.y.z.w

x.y.z.w

x.y.z.w

...

Моя цель - проверить для каждого адреса, есть ли за ним реальный веб-сайт или адрес поддельный.

Я видел сообщения, имеющие дело только с URL-адресами (не с адресами), и действительно я попробовал описанные методы, чтобы сначала преобразовать IP-адрес DNS-адреса в URL, а затем использовать его, чтобы определить, существует ли веб-сайт или нет. Однако для каждого адреса требуется около 2 секунд, что означает несколько месяцев для всех из них, и, конечно, у меня нет этого времени.

Какой самый лучший и быстрый способ сделать это?

Я очень предпочитаю Python, но может ли использование C значительно ускорить процесс?

Спасибо.

1 Ответ

1 голос
/ 16 июня 2019

Если только эти сайты фактически не размещены , IP-адреса ничем не отличаются от имен хостов.Но в случае виртуального хостинга использование обратного DNS не поможет вам, так как многие сайты могут быть размещены на одном IP-адресе, и тот, который вы запросите, может быть недоступен в данный момент.Кроме того, не все веб-сайты будут зарегистрированы в обратных записях DNS, поэтому вы можете пропустить некоторые из них.

Я не знаю, какой метод вы используете, чтобы определить, размещен ли веб-сайт по адресу, но какой бы он ни былэто, вероятно, связано с IO, а не с процессором.Это означает, что использование C, вероятно, приведет к незначительному улучшению производительности, поскольку программа все равно будет проводить большую часть времени в ожидании ответа от веб-сайтов.

Что вы можете сделать для повышения производительности:

  1. Уменьшение времени ожидания.Если вы используете тайм-ауты по умолчанию для сетевых операций, возможно, вы ожидаете ответов больше, чем хотите.

  2. Распараллеливание задач.Попробуйте использовать модули threading или asyncio.Они созданы для параллелизации задач, и asyncio специально предназначен для этого для программ, связанных с вводом-выводом.

Также рассмотрите возможность использования инструментов, в которых уже реализованы эти функции, например nmap например.

...