Autoriza la IP del checker
Añade la dirección del servidor en el panel. Varios servidores pueden compartir un paquete, a un 10 % por cada IP extra.
Un checker es una máquina de hilos: abre miles de conexiones y descarta al momento las direcciones lentas. El paquete n.º 6 de Advanced.name responde con 50.000 direcciones IPv4 y 5.000 hilos en un enlace, los dos protocolos en un puerto y sin contador de tráfico.
El checker mide el pool con dos números: los hilos que puede abrir y las direcciones que puede quemar en una hora.
Miles de conexiones en paralelo
De 500 a 5.000 hilos: el paquete n.º 6 lleva el máximo
Más direcciones que líneas por comprobar
50.000 IP en el n.º 6, 40.000 en el n.º 5, un tercio renovado cada día
Respuestas rápidas, sin direcciones muertas
Lista renovada cada 10 minutos; el script de velocidad de abajo descarta las lentas antes de la pasada
Quejas que no paran la pasada
Los abusos se tratan por el cauce habitual y el paquete sigue activo
Pon el checker en el límite de hilos del paquete; por encima, el pool rechaza conexiones.
Añade la dirección del servidor en el panel. Varios servidores pueden compartir un paquete, a un 10 % por cada IP extra.
Ejecuta el script de abajo o SLP: se queda con las direcciones que responden dentro de tu límite y las escribe en un archivo.
5.000 en el paquete n.º 6, 2.000 en el n.º 3. Más hilos que el límite dan conexiones rechazadas, no más velocidad.
Para cada proxy abre dos servicios de eco y decide si la dirección te oculta del todo, si anuncia que es un proxy o si filtra tu IP real, y escribe el veredicto en un CSV. Para decenas de miles de direcciones usa 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()
Cualquier checker masivo acepta un archivo de proxies o una URL: pega la lista ip:port, elige SOCKS5 o HTTP (los dos responden en un puerto) y mantén el mismo tipo toda la pasada. Pon los hilos en el límite del paquete, 5.000 en el más grande, porque las conexiones de más se rechazan, no se ponen en cola.
Un timeout de 10 segundos con un reintento por otra dirección es lo que menos hilos malgasta; los timeouts largos se quedan colgados en objetivos muertos.
Antes de la pasada descarta las direcciones lentas y las que filtran tu IP con el script de anonimato de arriba o Socks List Processor. En pasadas largas relee la lista cada 10 minutos para que entren direcciones nuevas.
Para una comprobación rápida, la lista de proxies gratis muestra el formato que espera el checker.
Un checker choca con los límites de hilos y de número de direcciones, y eso es trabajo de los paquetes ilimitados. Añade Resi Core para los destinos que cortan las direcciones de las listas.
El máximo de hilosLa mejor opción
El paquete más grande: una IP rara vez vuelve a un destino, incluso con una base de cientos de miles de líneas. El tráfico no se cuenta.
$1390 al meso $5.80 por hora
Un checker de hasta 2500 hilos
Suficiente para un checker que mantiene hasta 2500 conexiones, casi un 30% más barato que el paquete #6.
$990 al meso $4.20 por hora
Destinos estrictos
Una IP doméstica nueva en cada comprobación. La respuesta del destino pesa kilobytes, así que un gigabyte cubre miles de comprobaciones.
desde $0.49 por GB1 GB por $0.85
Elige el paquete, usa la hora gratis y lanza el checker sobre el pool completo.