Ты копируешь блоки по очереди, вставляешь в Claude Code, запускаешь пару команд - и получаешь рабочий инструмент, который проверяет прокси глубже, чем большинство публичных сервисов.
Не нужно уметь программировать. Нужны Python, Claude Code и 40 минут. Дальше - по шагам: каждый этап это один промт, который ты целиком вставляешь в агента, ждёшь, запускаешь и проверяешь результат.
Что мы построим #
Веб-приложение - прокси-чекер (он же IP-чекер). Вставляешь список прокси в любом формате, а оно по каждой показывает: гео, живая или нет, датацентр или жилой IP, в чёрных списках или нет, Tor / VPN / прокси, и сводный риск-score.
Как это работает под капотом #
Каждая прокси проходит 6 этапов, и результат каждого прилетает в таблицу сразу.
Этап 0. Подготовка #
1. Поставь Python 3. Скачай с python.org/downloads. На Windows в установщике обязательно галочка «Add Python to PATH». Проверь в терминале:
python3 --version
Должно ответить Python 3.x.x (на Windows - python --version).
2. Поставь Claude Code - агент, который будет писать код за тебя. Инструкция: claude.com/claude-code. Открой терминал, перейди в новую пустую папку и запусти claude:
mkdir proxy-checker && cd proxy-checker
claude
Дальше ты просто пишешь Claude текст из блоков ниже. Он сам создаёт и правит файлы.
Этап 1. Скелет, который уже работает #
Вставь этот промт в Claude Code целиком:
Собери минимальное веб-приложение «прокси-чекер» на Python.
ТРЕБОВАНИЯ:
- Стек: Python 3 + FastAPI + uvicorn (бэкенд) и один index.html с чистым
JavaScript (без React, без сборки, без npm).
- Запуск двумя командами: pip install -r requirements.txt, затем python app.py,
открывается на http://localhost:8000
- Работает БЕЗ единого API-ключа.
ЧТО ДОЛЖНО УМЕТЬ ПОКА (MVP):
- Большое поле ввода: вставляю список прокси, по одному на строку.
- Форматы host:port и host:port:user:pass - распознавай оба, битую строку
показывай отдельной записью с текстом ошибки, а не роняй весь прогон.
- Кнопка «Проверить»: по каждой прокси проверить живость по HTTP через httpx
(запрос к http://checkip.amazonaws.com через прокси, таймаут 5с).
- Таблица со столбцами: Статус (живо/мертво/ошибка цветным бейджем), Прокси,
Задержка (мс). Строки появляются сразу, статус обновляется по мере проверки.
Выдай ВСЕ файлы целиком и короткий README с командами запуска.
Когда Claude допишет файлы:
pip install -r requirements.txt
python app.py
Открой http://localhost:8000, вставь для теста:
8.8.8.8:3128
1.1.1.1:8080
это-битая-строка
Ты увидишь таблицу с проверкой прокси. Произвольный текст (битая строка) не ломает прогон.
PORT=8010 python app.py и открой :8010. Больше граблей - в конце статьи.
Готово. У тебя уже построен скелет чекера. Дальше наращиваем «мясо».
Этап 2. Три протокола вместо одного #
Добавь в проект проверку не только HTTP, но и HTTPS и SOCKS5.
- Три протокола проверяй ПАРАЛЛЕЛЬНО. Первый ответивший протокол отменяет два
остальных (они помечаются «не проверялось»).
- Для SOCKS5 нужен httpx[socks] - добавь в requirements.
- ВАЖНО: оберни каждую проверку в asyncio.wait_for с жёстким таймаутом. SOCKS-
транспорт иногда игнорирует таймаут httpx и висит до 60 секунд к мёртвому хосту.
- В таблицу добавь столбец «Протокол» - какой протокол ответил у живой прокси.
- Замеряй задержку по живому протоколу.
- Детект IP-leak: реальный IP сервера снимай один раз в начале; если через прокси
вернулся именно он - прокси не проксирует, помечай отдельным статусом.
Перезапусти python app.py, проверь ещё раз. Теперь чекер ловит SOCKS5 и видит утечки.
Этап 3. Геолокация из четырёх источников #
Добавь геолокацию каждой живой прокси (для мёртвых - по её host-IP, если это IPv4).
- Опрашивай ЧЕТЫРЕ источника ОДНОВРЕМЕННО: ipwho.is, ip-api.com, ipinfo.io
(все три работают без ключа) и офлайн-базу MaxMind GeoLite2 - ОПЦИОНАЛЬНО,
только если указан путь к .mmdb; без неё просто показывай три остальных.
- Показывай результаты ВСЕХ источников, а не один «правильный».
- В таблице - флаг страны эмодзи + код. Если источники назвали РАЗНЫЕ страны,
ставь значок расхождения с подсказкой, кто что сказал.
- Сделай раскрывающуюся строку (стрелка справа): там детали - гео по каждому
источнику отдельными карточками, разбивка по протоколам, исходная строка.
Проверь на реальном IP (8.8.8.8 это Google, США). В раскрытой строке увидишь все источники сразу - и сразу поймаешь, если они расходятся.
Этап 4. Репутация и анонимность (без ключей) #
Добавь два сигнала.
1) Abuse-репутация IP:
- Если задан ключ AbuseIPDB (через .env) - используй его.
- Если ключа НЕТ - фолбэк на публичные DNSBL-зоны без ключа: zen.spamhaus.org,
b.barracudacentral.org, dnsbl.dronebl.org, bl.spamcop.net и др. Показывай
«в скольких списках из N». Нужен dnspython.
- Результаты кэшируй на диске 7 дней, чтобы не жечь лимиты.
2) Уровень анонимности elite / anonymous / transparent:
- Через прокси запроси echo-сервис, возвращающий заголовки запроса
(postman-echo.com/headers). Смотри, какие заголовки долетели:
- реальный IP виден в заголовках -> transparent;
- есть Via / X-Forwarded-For / X-Real-IP и подобные, но реального IP нет ->
anonymous; ничего не выдаёт -> elite.
Добавь столбцы «Abuse» и «Аноним» в таблицу.
Теперь .env.example с опциональным ключом, а без него всё равно всё работает.
Ohsorry