Прокси используются во многих задачах бизнеса, особенно, если они касаются парсинга, мониторинга и изучения сайтов конкурентов, поисковой выдачи, крупных торговых площадок, социальных медиа и т.п. А так как прокси получают из разных источников, они не всегда могут соответствовать заявленному/нужному качеству. Проверить качество прокси и их работоспособность перед покупкой в большинстве случаев нельзя.
В связи с этим возникает отдельная задача или даже целый бизнес-процесс – проверка и тестирование прокси перед их подключением. Ниже всё о том, как тестировать прокси-серверы, на какие параметры нужно обращать внимание, с помощью каких инструментов можно проводить тесты.
Самый простой способ проверки прокси – это подключить его к своему браузеру и отправить из браузера запрос к любому онлайн-сервису, способному вернуть в ответ ваш IP-адрес. Вместо браузера можно использовать терминал, а прокси можно подключить на уровне операционной системы.
Если новый IP определяется как IP прокси-сервера, то прокси работает как положено. Но тут есть масса подводных камней:
Как итог: браузер или терминал позволяют проверить только работоспособность прокси и не дают никаких расширенных данных. Если у вас большой список прокси и ответственный проект, такой подход недопустим. А значит, потребуются более качественные профильные инструменты или сервисы. О них расскажем ниже. Но сначала о том, что конкретно можно и нужно проверять.
Что следует проверять и как это делается:
Вот так, например, могут выглядеть признаки неанонимных прокси в HTTP-заголовках:
Помимо непосредственно параметров прокси можно также проверять различные признаки, которые выдают работу парсера (или антидетект-браузера). Так как все боты представляются определёнными браузерами, их можно проверять по целому набору параметров: поддержка JavaScript (и передаваемые внутри системные переменные), соответствие часового пояса, поддержка ActiveX или WebRTC, user-агент, язык, разрешение экрана и т.п. Но это уже скорее про цифровые отпечатки.
Итак, мы выяснили, что существует несколько разных способов для проверки работоспособности прокси. К ним можно отнести: ручную установку и проверку (на своём устройстве – через браузер или терминал), использование специальных онлайн-сервисов (программ-чекеров) или самописных скриптов, которые будут делать то, что вы заложите им в программу.
Первый способ самый трудоёмкий и малоинформативный, поэтому его рассматривать не будем. Остановимся на более доступных инструментах: готовых программах и онлайн-чекерах.
Самый удобный формат – это онлайн-сервисы. Не нужно ничего устанавливать и настраивать. Все проверки проходят в автоматическом режиме, а вам выдаётся только итоговый результат. Существуют IP-чекеры, которые работают со списками прокси, а есть те, которые анализируют ваш IP-адрес (удобно выполнять подключение к таким страницам и в ответ получать информацию о текущем адресе, соответственно, если вы подключаетесь через прокси, то видите информацию о нём).
В первом случае вам нужно дополнительно сообщить порт и параметры подключения (чтобы чекер сам подключился через прокси и проверил его работу). Но тогда данные доступа фактически разглашаются. Никто не может гарантировать, что информация о прокси не пополнит очередную бесплатную базу. При этом вы сами поделились параметрами, вас никто и ни к чему не принуждал.
Во втором случае никто и ничего не получает, так как параметрами доступа вы ни с кем не делитесь (вы уже подключаетесь через работающий прокси). Но тогда для организации массовых проверок нужно будет использовать какой-нибудь ротатор прокси (прокси-менеджер) или другое программное решение, чтобы можно было поставить на поток замену прокси, подключение к чекеру, проверку работоспособности и параметров прокси, его отключение, замену на очередной, и так по кругу.
Примеры чекеров для штучных проверок: whatismyproxy.com, ip-api.com (информация о расположении IP-адреса и об операторе связи), 2ip.io/ru/privacy/ (проверка анонимности), 2ip.ru/spam/ (прогон IP по спам-базам).
Пример чекера для проверки больших списков – hidxxx.name/proxy-checker/. Для тестирования нужно вставить список в формате IP:Port в специальное поле, при желании можно также добавить строки с адресами сайтов, на которых нужно проверить работоспособность прокси, и запустить проверку. У чекера присутствуют платные опции (но зато можно задействовать API-интерфейс).
Каждый раз тестировать большие списки очень дорого и долго по времени. Вместо этого можно воспользоваться огромными базами IP-адресов, в которых уже выполнены все необходимые проверки. Но тут важно понять, что такие базы не тестируют параметры прокси, они помогают их выявлять. Такие базы как раз интегрируются с антифрод-системами.
Примеры таких сервисов – IP2Location и MaxMind. Первый максимально простой и бесплатный, а второй – с массой интересных опций. Например, есть специальное решение для выявления прокси (без признаков в HTTP-заголовках, только по IP) и VPN-сервисов (сравнение VPN с прокси).
Это stand-alone софт, который может устанавливаться на ПК с Windows или MacOS.
Интерфейс утилиты максимально простой и не требует перевода. Нужно только загрузить список ваших прокси (вставить в специальное поле) и запустить проверку. Плюсы очевидны: данные о ваших прокси остаются только у вас, в один клик можно удалить неработоспособные IP и выгрузить только рабочие. Программа поддерживает авторизацию по логину/паролю и умеет проверять прокси на указанных целевых сайтах. Распространяется софт абсолютно бесплатно.
Конечно, существуют определённые риски: программа написана неизвестными авторами и что конкретно в коде никто не знает. Вполне вероятно, что ваш ПК или Mac сам будет работать в роли прокси 😉
Технически вам нужно написать свой скрипт для автоматического пингования. Для этого можно воспользоваться готовыми библиотеками или фреймворками, а можно написать код с нуля.
Что конкретно должен делать скрипт:
Звучит несложно, но вот реализовать такой скрипт смогут только те, кто знаком с программированием. Ниже простейший пример скрипта на языке Go.
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("Прокси не работает")
}
}
Обратите внимание на значения переменных: вам нужно вставить свой прокси и целевой сайт, при желании можно увеличить или уменьшить таймаут.
Теперь, как тестировать прокси:
Ту же самую библиотеку можно задействовать в более сложных скриптах. В этом случае к ней можно обратиться с помощью функции ProxyTest:
func ProxyTest(proxy, urlTarget string, timeout uint) bool
Она будет возвращать истину или ложь (по аналогии «работает» или «не работает»).
В цикле можно перебирать списки прокси любого размера.
Тестирование прокси только с виду кажется простой задачей. На самом деле внутри много подводных камней. Требования к тестам будут зависеть от целей и задач, а также от типа и назначения прокси.
Выше мы описали все самые доступные методы тестирования прокси-серверов и даже показали, как это можно организовать на уровне своих скриптов.
Если вы не хотите ничего тестировать, то просто покупайте качественные прокси с ротацией у нас. Froxy – это 10+ млн. IP-адресов. В ассортименте мобильные, резидентные и датацентровые (серверные) прокси. Если адрес выходит из строя, он автоматически заменяется на работоспособный. В настройках подключения ничего менять не нужно, так как прокси работают по схеме с обратной связью (вход в прокси-сеть для клиента остаётся статичным).