Прокси используются во многих задачах бизнеса, особенно, если они касаются парсинга, мониторинга и изучения сайтов конкурентов, поисковой выдачи, крупных торговых площадок, социальных медиа и т.п. А так как прокси получают из разных источников, они не всегда могут соответствовать заявленному/нужному качеству. Проверить качество прокси и их работоспособность перед покупкой в большинстве случаев нельзя.
В связи с этим возникает отдельная задача или даже целый бизнес-процесс – проверка и тестирование прокси перед их подключением. Ниже всё о том, как тестировать прокси-серверы, на какие параметры нужно обращать внимание, с помощью каких инструментов можно проводить тесты.
Что нужно для тестирования прокси?
Самый простой способ проверки прокси – это подключить его к своему браузеру и отправить из браузера запрос к любому онлайн-сервису, способному вернуть в ответ ваш IP-адрес. Вместо браузера можно использовать терминал, а прокси можно подключить на уровне операционной системы.
Если новый IP определяется как IP прокси-сервера, то прокси работает как положено. Но тут есть масса подводных камней:
- В ответе онлайн-сервиса вы получаете только выходной IP-адрес. А он может не совпадать с точкой входа, например, если используются прокси с обратной связью, выходные IP могут ротироваться хоть при каждом новом запросе, поэтому важно знать свой реальный IP, чтобы было с чем сравнить. В случае с BackConnect прокси нужно проверять не столько выходной IP, сколько соответствие условий ротации и правильность таргетинга (тип адреса, его расположение, соответствие пулу определённого провайдера связи).
- Браузер не возвращает скорость работы прокси или его пинг. Для этого нужно проводить полноценные тесты на основе сети из опорных точек (выделенных серверов или дата-центров). Да, всегда можно вручную пропинговать через прокси список целевых URL, но степень автоматизации в этом случае будет крайне низкой.
- Ни браузер, ни терминал не возвращают дополнительную информацию об IP-адресе: его физическое расположение, принадлежность телеком-оператору (или данные о владельце пула), поддерживаемые протоколы и т.п.
- В ряде задач нужно проверить не только сам IP (прокси-сервер), но и возможности профильного софта. Например, для антидетект-браузеров это способность качественно эмулировать цифровые отпечатки и обходить наиболее распространённые системы защиты (антифрод-системы).
- Не менее интересна совместимость прокси с конкретными сайтами и web-сервисами. Например, узнать, что прокси не работает с условным Google, LinkedIn или eBay можно будет только после включения прокси к полноценную работу.
Как итог: браузер или терминал позволяют проверить только работоспособность прокси и не дают никаких расширенных данных. Если у вас большой список прокси и ответственный проект, такой подход недопустим. А значит, потребуются более качественные профильные инструменты или сервисы. О них расскажем ниже. Но сначала о том, что конкретно можно и нужно проверять.
Ключевые метрики для тестирования прокси
Что следует проверять и как это делается:
- Время отклика (скорость ответа/реакции прокси). Проверка организуется за счёт системных команд ping. Пингование производится либо от ПК (устройства) пользователя к прокси (что малоинформативно), либо от прокси к списку опорных точек (в этом случае можно узнать в каких странах и регионах у прокси будет минимальная задержка, а в каких – максимальная). В качестве опорных точек обычно выбирают региональные дата-центры, крупных телеком-операторов или сайты поисковых систем (крупных web-сервисов). Слишком большие задержки при отклике могут приводить к обрыву соединений с целевыми сайтами.
- Скорость подключения. Проверка осуществляется за счёт скачивания тестовых архивов/файлов заданного размера. Чем больше файл и чем дольше длится проверка, тем точнее будет измерение. Но тут важно понимать, что маршрут подключения в сети Интернет может состоять из разных сегментов, часть из них могут иметь низкую надёжность и пропускную способность. Соответственно, итоговая скорость будет определяться по пропускной способности самого «узкого» сегмента. Поэтому тестирование скорости больше проводится для общего понимания возможностей прокси (подходит он под ваши задачи или нет).
- Анонимность прокси. Прокси могут быть без анонимности (реальный IP пользователя явно указывается в специальных HTTP-заголовках), с низкой анонимностью (присутствуют характерные заголовки, но нет реального IP клиента), со средней анонимностью (когда IP-клиента намеренно подменяется на неправильный, чтобы сбить с толку системы отслеживания), с высокой анонимностью (никаких признаков того, что используется подключение через прокси, нет, все характерные HTTP-заголовки отсутствуют). Проверить анонимность прокси можно только путём анализа ответов сервера. Обратите внимание: анонимность можно проверить только в HTTP-прокси. В Socks-прокси вопрос анонимности даже не поднимается, так как никакие дополнительные HTTP-заголовки такие прокси не отправляют.
- Местоположение. Все IP-адреса распределяются специальными компаниями – регистраторами. Соответственно, в их распоряжении есть свои базы: какие пулы IP и за кем закреплены. Но обычно такие базы не являются общедоступными (точнее они требуют глубокой переработки). Вместо этого антифрод-системы опираются на базы георасположений из открытого доступа (они могут быть в том числе и с платным доступом). К таким можно отнести: ip2location, MaxMind, SypexGeo и т.п. У таких сервисов есть API и к ним можно отправлять автоматические запросы, получая в ответ конкретное расположение IP, а также принадлежность к определённому оператору связи. Тип IP и расположение могут многое рассказать о пользователе (и прокси).
- Наличие в спам-базах. Чёрные списки IP далеко не редкость. Крупные компании либо сами создают свои спам-базы, либо объединяются с другими игроками рынка (для экономии). Небольшим компаниям остаётся только обращаться к общедоступным спискам. К таким можно отнести: barracudacentral, Spamhaus Blocklist (SBL), SERVICESNET, CBL и другие (их десятки). Но можно либо прогонять IP по этим базам вручную, либо пользоваться специальными сервисами (в режиме одного окна).
- Совместимость с целевыми сайтами и web-сервисами. Тут проверка только одна – попытаться подключиться через прокси к конкретным сайтам и выяснить: блокируется соединение или нет.
Вот так, например, могут выглядеть признаки неанонимных прокси в HTTP-заголовках:
Помимо непосредственно параметров прокси можно также проверять различные признаки, которые выдают работу парсера (или антидетект-браузера). Так как все боты представляются определёнными браузерами, их можно проверять по целому набору параметров: поддержка JavaScript (и передаваемые внутри системные переменные), соответствие часового пояса, поддержка ActiveX или WebRTC, user-агент, язык, разрешение экрана и т.п. Но это уже скорее про цифровые отпечатки.
Как проверить, что прокси работает
Итак, мы выяснили, что существует несколько разных способов для проверки работоспособности прокси. К ним можно отнести: ручную установку и проверку (на своём устройстве – через браузер или терминал), использование специальных онлайн-сервисов (программ-чекеров) или самописных скриптов, которые будут делать то, что вы заложите им в программу.
Первый способ самый трудоёмкий и малоинформативный, поэтому его рассматривать не будем. Остановимся на более доступных инструментах: готовых программах и онлайн-чекерах.
IP-чекеры
Самый удобный формат – это онлайн-сервисы. Не нужно ничего устанавливать и настраивать. Все проверки проходят в автоматическом режиме, а вам выдаётся только итоговый результат. Существуют IP-чекеры, которые работают со списками прокси, а есть те, которые анализируют ваш IP-адрес (удобно выполнять подключение к таким страницам и в ответ получать информацию о текущем адресе, соответственно, если вы подключаетесь через прокси, то видите информацию о нём).
В первом случае вам нужно дополнительно сообщить порт и параметры подключения (чтобы чекер сам подключился через прокси и проверил его работу). Но тогда данные доступа фактически разглашаются. Никто не может гарантировать, что информация о прокси не пополнит очередную бесплатную базу. При этом вы сами поделились параметрами, вас никто и ни к чему не принуждал.
Во втором случае никто и ничего не получает, так как параметрами доступа вы ни с кем не делитесь (вы уже подключаетесь через работающий прокси). Но тогда для организации массовых проверок нужно будет использовать какой-нибудь ротатор прокси (прокси-менеджер) или другое программное решение, чтобы можно было поставить на поток замену прокси, подключение к чекеру, проверку работоспособности и параметров прокси, его отключение, замену на очередной, и так по кругу.
Примеры чекеров для штучных проверок: whatismyproxy.com, ip-api.com (информация о расположении IP-адреса и об операторе связи), 2ip.io/ru/privacy/ (проверка анонимности), 2ip.ru/spam/ (прогон IP по спам-базам).
Пример чекера для проверки больших списков – hidxxx.name/proxy-checker/. Для тестирования нужно вставить список в формате IP:Port в специальное поле, при желании можно также добавить строки с адресами сайтов, на которых нужно проверить работоспособность прокси, и запустить проверку. У чекера присутствуют платные опции (но зато можно задействовать API-интерфейс).
Базы данных IP-адресов
Каждый раз тестировать большие списки очень дорого и долго по времени. Вместо этого можно воспользоваться огромными базами IP-адресов, в которых уже выполнены все необходимые проверки. Но тут важно понять, что такие базы не тестируют параметры прокси, они помогают их выявлять. Такие базы как раз интегрируются с антифрод-системами.
Примеры таких сервисов – IP2Location и MaxMind. Первый максимально простой и бесплатный, а второй – с массой интересных опций. Например, есть специальное решение для выявления прокси (без признаков в HTTP-заголовках, только по IP) и VPN-сервисов (сравнение VPN с прокси).
Программа для тестирования прокси – FOGLDN Proxy Tester
Это stand-alone софт, который может устанавливаться на ПК с Windows или MacOS.
Интерфейс утилиты максимально простой и не требует перевода. Нужно только загрузить список ваших прокси (вставить в специальное поле) и запустить проверку. Плюсы очевидны: данные о ваших прокси остаются только у вас, в один клик можно удалить неработоспособные IP и выгрузить только рабочие. Программа поддерживает авторизацию по логину/паролю и умеет проверять прокси на указанных целевых сайтах. Распространяется софт абсолютно бесплатно.
Конечно, существуют определённые риски: программа написана неизвестными авторами и что конкретно в коде никто не знает. Вполне вероятно, что ваш ПК или Mac сам будет работать в роли прокси 😉
Пользовательское ПО: cкрипт для теста прокси на Golang по шагам
Технически вам нужно написать свой скрипт для автоматического пингования. Для этого можно воспользоваться готовыми библиотеками или фреймворками, а можно написать код с нуля.
Что конкретно должен делать скрипт:
- Принимать список прокси (это может быть фиксированный формат).
- Желательно также организовать ввод хотя бы одного целевого сайта (а лучше списка).
- Выбирать прокси из списка по очереди и подключаться через них.
- При активном прокси выполнять запрос к целевому сайту – пинговать их.
- Выводить статус ответа целевого сайта/сервера и значение пинга (скорости ответа).
Звучит несложно, но вот реализовать такой скрипт смогут только те, кто знаком с программированием. Ниже простейший пример скрипта на языке Go.
- Предварительно скачайте и установите среду Go. Поддерживается установка в разных операционных системах.
- Для Windows нужно дополнительно скачать и установить Git-клиент (с официального сайта). Не забудьте согласиться, чтобы при установке программа автоматически добавила строки в %PATH%. Если установщик этого не сделает, то добавьте переменную окружения вручную: найдите в поиске инструмент «Изменение переменных среды текущего пользователя», откройте его, создайте новый параметр с именем «git» и значением «C:\Program Files\Git\bin\git.exe» (если путь до исполняемого файла отличается, замените на свой).
- Запустите командную строку (например, терминал в Windows, без прав администратора).
- Создайте каталог для проектов и свой первый проект. Для этого введите команды:
mkdir \My-proxy-test
(каталог будет создан в корне системного диска)
cd \My-proxy-test
(переключаемся в этот каталог)
go mod init My-proxy-test
(создаём Go-модуль)
go get github.com/trananhtung/proxy-checker
(скачиваем библиотеку для тестирования прокси)
Теперь можно переходить непосредственно к созданию прокси-чекера.
Для этого перейдите в каталог с вашими скриптами («C:\My-proxy-test») и создайте скрипт (простой текстовый файл, у которого потом измените расширение с txt на go). Пусть это будет «my-proxy-cheker.go».
Откройте его в текстовом редакторе (блокноте) и наполните содержимым:
package main
import (
"fmt"
"github.com/trananhtung/proxy-checker"
)
func main() {
proxy := "http://1.1.1.1:8080" //тут должен быть ваш прокси
targetURL := "https://google.com" //тут вписываем целевой сайт
timeout := uint(5) // тут таймаут в секундах (значение в скобках)
result := proxy_checker.ProxyTest(proxy, targetURL, timeout)
if result {
fmt.Println("Прокси работает")
} else {
fmt.Println("Прокси не работает")
}
}
Обратите внимание на значения переменных: вам нужно вставить свой прокси и целевой сайт, при желании можно увеличить или уменьшить таймаут.
Теперь, как тестировать прокси:
- Меняете значение прокси на свои.
- Сохраняете файл.
- Запускаете его в терминале командой «go run my-proxy-cheker.go»
- После отработки в консоли будет выведен результат: работает прокси или не работает.
Ту же самую библиотеку можно задействовать в более сложных скриптах. В этом случае к ней можно обратиться с помощью функции ProxyTest:
func ProxyTest(proxy, urlTarget string, timeout uint) bool
Она будет возвращать истину или ложь (по аналогии «работает» или «не работает»).
В цикле можно перебирать списки прокси любого размера.
Итоги и рекомендации
Тестирование прокси только с виду кажется простой задачей. На самом деле внутри много подводных камней. Требования к тестам будут зависеть от целей и задач, а также от типа и назначения прокси.
Выше мы описали все самые доступные методы тестирования прокси-серверов и даже показали, как это можно организовать на уровне своих скриптов.
Если вы не хотите ничего тестировать, то просто покупайте качественные прокси с ротацией у нас. Froxy – это 10+ млн. IP-адресов. В ассортименте мобильные, резидентные и датацентровые (серверные) прокси. Если адрес выходит из строя, он автоматически заменяется на работоспособный. В настройках подключения ничего менять не нужно, так как прокси работают по схеме с обратной связью (вход в прокси-сеть для клиента остаётся статичным).