Autorize o IP do checker
Cadastre o endereço do servidor no painel. Vários servidores podem dividir um pacote, com 10% a mais por IP extra.
Um checker é uma máquina de threads: abre milhares de conexões e descarta na hora os endereços lentos. O pacote nº 6 da Advanced.name responde com 50.000 endereços IPv4 e 5.000 threads num link, os dois protocolos numa porta e sem medidor de tráfego.
O checker mede o pool por dois números: as threads que consegue abrir e os endereços que consegue queimar numa hora.
Milhares de conexões em paralelo
De 500 a 5.000 threads: o pacote nº 6 tem o máximo
Mais endereços que linhas a checar
50.000 IPs no nº 6, 40.000 no nº 5, um terço trocado todo dia
Respostas rápidas, sem endereços mortos
Lista renovada a cada 10 minutos; o script de velocidade abaixo tira os lentos antes da rodada
Reclamações que não param a rodada
Abusos tratados no fluxo normal, o pacote continua ativo
Ajuste o checker ao limite de threads do pacote; acima dele, o pool recusa conexões.
Cadastre o endereço do servidor no painel. Vários servidores podem dividir um pacote, com 10% a mais por IP extra.
Rode o script abaixo ou o SLP: ele mantém os endereços que respondem dentro do seu limite e grava num arquivo.
5.000 no pacote nº 6, 2.000 no nº 3. Threads acima do limite dão conexões recusadas, não mais velocidade.
Para cada proxy, ele abre dois serviços de eco e decide se o endereço esconde você por completo, se anuncia que é proxy ou se vaza seu IP real, gravando o veredito num CSV. Para dezenas de milhares de endereços, use o 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()
Qualquer checker em massa aceita um arquivo de proxies ou uma URL: cole a lista ip:port, escolha SOCKS5 ou HTTP (os dois respondem numa porta) e mantenha o mesmo tipo na rodada toda. Ajuste as threads ao limite do pacote, 5.000 no maior, porque conexões acima dele são recusadas, não enfileiradas.
Timeout de 10 segundos com uma nova tentativa em outro endereço é o que menos desperdiça threads; timeouts longos ficam presos em alvos mortos.
Antes da rodada, tire os endereços lentos e os que vazam IP com o script de anonimato acima ou o Socks List Processor. Em rodadas longas, releia a lista a cada 10 minutos para entrarem endereços novos.
Para um teste rápido, a lista de proxies grátis mostra o formato que o checker espera.
Um checker esbarra em limites de threads e de número de endereços, e esse é o trabalho dos pacotes ilimitados. Acrescente o Resi Core para alvos que cortam endereços de listas.
Máximo de threadsMelhor escolha
O maior pacote: um IP raramente volta a um alvo, mesmo numa base de centenas de milhares de linhas. O tráfego não é contado.
$1390 por mêsou $5.80 por hora
Um checker de até 2500 threads
O bastante para um checker que mantém até 2500 conexões, quase 30% mais barato que o pacote #6.
$990 por mêsou $4.20 por hora
Alvos rigorosos
Um IP residencial novo a cada checagem. A resposta do alvo pesa kilobytes, então um gigabyte cobre milhares de checagens.
a partir de $0.49 por GB1 GB por $0.85
Escolha o pacote, use a hora grátis e rode o checker no pool completo.