Авторизуйте IP чекера
Добавьте адрес сервера в кабинете. Несколько серверов делят один пакет по 10% за каждый дополнительный IP.
Чекер работает потоками: открывает тысячи соединений и разом выбрасывает медленные адреса. Пакет №6 на Advanced.name отвечает 50 000 адресов IPv4 и 5 000 потоков по одной ссылке, оба протокола на одном порту, без счётчика трафика.
Чекер меряет пул двумя числами: сколько потоков он откроет и сколько адресов сожжёт за час.
Тысячи параллельных соединений
От 500 до 5 000 потоков: в пакете №6 максимум
Адресов больше, чем строк в базе проверки
50 000 IP на №6, 40 000 на №5, треть меняется ежедневно
Быстрые ответы, мёртвые адреса вон
Обновление списка каждые 10 минут; скрипт ниже выкидывает медленные до запуска
Жалобы, которые не останавливают прогон
Абузы разбираем в обычном порядке, пакет работает
Ставьте чекеру лимит потоков пакета; пул отбрасывает соединения сверх него.
Добавьте адрес сервера в кабинете. Несколько серверов делят один пакет по 10% за каждый дополнительный IP.
Запустите скрипт ниже или SLP: он оставляет адреса, отвечающие в ваш лимит, и пишет их в файл.
5 000 на пакете №6, 2 000 на №3. Потоков больше лимита дают отказы соединений, а не скорость.
Для каждого прокси скрипт открывает два echo-эндпоинта и решает, прячет ли адрес вас полностью, объявляет прокси или светит реальный IP, и пишет вердикт в CSV. Для десятков тысяч адресов берите Socks List Processor.
#!/usr/bin/env python3
"""Proxy anonymity checker for Advanced.name proxies.
For every proxy it opens two small endpoints that echo the request, then decides
whether the proxy is elite (hides you completely), anonymous (announces a proxy
but not your IP) or transparent (leaks your real IP). Standard library only.
Run: python3 anon.py
"""
# ================================ CONFIG ====================================
PROXY_LIST = "proxies.txt" # one ip:port per line, or a CSV export (';' separated)
MY_IP = "" # your real IP; leave empty to detect it once directly
JUDGE_IP = "https://api.ipify.org" # returns the exit IP as plain text
JUDGE_HDR = "https://httpbin.org/get" # echoes the headers the site received
THREADS = 100
TIMEOUT = 12
OUT_FILE = "anon.csv" # proxy;status;anonymity;exit_ip is written here
# HTTP and SOCKS answer on the same Advanced.name port, so the http scheme works for both.
# ============================================================================
import csv
import sys
import threading
import urllib.request
from concurrent.futures import ThreadPoolExecutor, as_completed
LEAK_HEADERS = ("X-Forwarded-For", "Via", "X-Real-Ip", "Forwarded", "X-Proxy-Id")
def load_list(path):
out = []
with open(path, encoding="utf-8", errors="replace") as fh:
for line in fh:
line = line.strip()
if not line or line.startswith("#"):
continue
if ";" in line: # a CSV row: ip;port;...
parts = line.split(";")
if len(parts) >= 2 and parts[1].isdigit():
out.append(parts[0] + ":" + parts[1])
elif ":" in line:
out.append(line)
return out
def opener(proxy):
handler = urllib.request.ProxyHandler({"http": "http://" + proxy, "https": "http://" + proxy})
return urllib.request.build_opener(handler)
def through(proxy, url):
return opener(proxy).open(url, timeout=TIMEOUT).read().decode("utf-8", "replace")
def my_ip():
if MY_IP:
return MY_IP.strip()
return urllib.request.urlopen(JUDGE_IP, timeout=TIMEOUT).read().decode().strip()
def classify(proxy, real_ip):
try:
exit_ip = through(proxy, JUDGE_IP).strip()
except Exception:
return "dead", "", ""
try:
echoed = through(proxy, JUDGE_HDR).lower()
except Exception:
echoed = ""
if real_ip and real_ip in echoed:
anon = "transparent"
elif any(h.lower() in echoed for h in LEAK_HEADERS):
anon = "anonymous"
else:
anon = "elite"
return "live", anon, exit_ip
def main():
proxies = load_list(PROXY_LIST)
if not proxies:
sys.exit("List is empty.")
real_ip = my_ip()
print("real IP: %s, proxies: %d, threads: %d" % (real_ip, len(proxies), THREADS))
counts = {"elite": 0, "anonymous": 0, "transparent": 0, "dead": 0}
lock = threading.Lock()
rows = []
def work(proxy):
status, anon, exit_ip = classify(proxy, real_ip)
key = anon if status == "live" else "dead"
with lock:
counts[key] += 1
return proxy, status, anon, exit_ip
with ThreadPoolExecutor(max_workers=THREADS) as pool:
for fut in as_completed([pool.submit(work, p) for p in proxies]):
rows.append(fut.result())
with open(OUT_FILE, "w", encoding="utf-8", newline="") as out:
writer = csv.writer(out, delimiter=";")
writer.writerow(["proxy", "status", "anonymity", "exit_ip"])
writer.writerows(rows)
print("elite %d anonymous %d transparent %d dead %d -> %s"
% (counts["elite"], counts["anonymous"], counts["transparent"], counts["dead"], OUT_FILE))
if __name__ == "__main__":
main()
Любой масс-чекер берёт файл прокси или URL: вставьте список ip:port, выберите SOCKS5 или HTTP (оба на одном порту) и держите тип одинаковым весь прогон. Потоки ставьте по лимиту пакета — 5 000 на старшем — потому что соединения сверх него отбрасываются, а не встают в очередь.
Таймаут 10 секунд с одним повтором через другой адрес тратит меньше всего потоков; длинные таймауты сидят на мёртвых целях.
Медленные и светящие адреса убирайте до прогона скриптом анонимности выше или Socks List Processor. На длинных прогонах перечитывайте список каждые 10 минут, чтобы заходили новые адреса.
Для быстрой проверки формата подойдёт бесплатный список.
Чекер упирается в потоки и число адресов, и это работа безлимитных пакетов. Resi Core подключайте для целей, которые режут адреса из списков.
Максимум потоковЛучший выбор
Самый большой пакет: один IP возвращается к цели редко даже на базе в сотни тысяч строк. Трафик не считается.
$1390 в месяцили $5.80 в час
Чекер до 2 500 потоков
Хватает чекеру, который держит до 2 500 соединений, и выходит почти на 30% дешевле пакета №6.
$990 в месяцили $4.20 в час
Строгие цели
Новый домашний IP на каждую проверку. Ответ цели весит килобайты, поэтому гигабайта хватает на тысячи проверок.
от $0.49 за ГБ1 ГБ за $0.85
Выберите пакет, возьмите бесплатный час, запустите чекер на полном пуле.