Log in Sign up
Account checkers

Proxies for account checkers with up to 5,000 threads

A checker is a thread machine: it opens thousands of connections and drops slow addresses at once. Package #6 on Advanced.name answers with 50,000 IPv4 addresses and 5,000 threads on one link, both protocols on one port, no traffic counter.

  • 5,000 threads on package #6
  • 50,000 addresses
  • HTTP and SOCKS5 on one port
Control room wall with a dense grid of green and red indicators
Account checkers

What a checker needs and what the package gives

The checker measures the pool by two numbers: threads it can open and addresses it can burn through in an hour.

What the task needsWhat the package gives

Thousands of parallel connections

500 to 5,000 threads: package #6 holds the maximum

Addresses that outnumber the check list

50,000 IPs on #6, 40,000 on #5, a third replaced daily

Fast responses, dead addresses gone

List refresh every 10 minutes; the speed script below drops slow ones before the run

Complaints that do not stop the run

Abuse handled in the usual order, package stays on

Unlimited proxies

Pick the package for your thread count

Set the checker to the package thread limit; the pool refuses connections above it.

Region
Term
Authorized IPs
1 +10% per IP above the first
Recommended for this task
$0
  • Proxies in package
  • Threads
  • Authorized IPs1
  • ProtocolsHTTP / SOCKS5
All 13 packages in the price table

Three steps before the run

Authorise the checker's IP

Add the address of the server in the dashboard. Several servers share a package at 10% per extra IP.

Filter the list for speed

Run the script below or SLP: it keeps addresses that answer within your limit and writes them to a file.

Set threads to the package limit

5,000 on package #6, 2,000 on #3. More threads than the limit gives refused connections, not more speed.

Ready anonymity checker: elite, anonymous, transparent

For every proxy it opens two echo endpoints and decides whether the address hides you fully, announces a proxy, or leaks your real IP, writing the verdict to a CSV. For tens of thousands of addresses use Socks List Processor.

one ip:port per line, or a CSV export (';' separated)
your real IP; leave empty to detect it once directly
returns the exit IP as plain text
echoes the headers the site received
proxy;status;anonymity;exit_ip is written here
Values come from the form; copy or download the ready file.
Show the script code
Python 3.8+ · checkers.py
#!/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()
Setup

Feeding the list to your checker

Loading and threads

Any mass checker takes a proxy file or a URL: paste the ip:port list, choose SOCKS5 or HTTP (both answer on one port) and keep the type consistent for the whole run. Set threads to the package limit — 5,000 on the top package — because connections above it are refused, not queued.

Timeout 10 seconds with one retry on another address wastes the fewest threads; long timeouts sit on dead targets.

Filter first, run clean

Drop slow and leaking addresses before the run with the anonymity script above or Socks List Processor. During long runs re-read the list every 10 minutes so new addresses come in.

For a quick sanity check the free proxy list shows the format the checker expects.

Four settings for a stable run

  1. Timeout 10 seconds, one retry on another address. Long timeouts waste threads on dead targets.
  2. Read the list every 10 minutes during long runs: addresses leave the pool and new ones arrive.
  3. Keep the proxy type consistent with the checker: both work on one port, but a mismatch looks like a dead address.
  4. Use the free test hour to measure your real checks per minute before you pick the package size.
FAQ

Questions about this task

How many threads can a checker open?
As many as the package allows: 5,000 on #6, 3,000 on #5, 2,500 on #4. Resi Core and Resi Prime have no thread limit. One thread is one connection to the pool.
What happens above the thread limit?
The pool refuses the extra connections. The checker reads that as dead proxies, so keep threads at or below the limit.
Which protocol for checkers?
HTTP or SOCKS5, both on the same port. Most checkers default to SOCKS5; keep the type consistent across the run.
Can I test the pool speed first?
Yes. Take the free hour and run the speed script from this page: it reports how many addresses answer within your limit.
When does a checker need Resi Core instead of a package?
When the target cuts addresses from shared lists and errors out before the check starts. Resi Core gives a home IP on every request with no thread limit, and you pay by the gigabyte.
Plans for this task

Which package to take for a checker

A checker hits limits on threads and address count, and that is the job of unlimited packages. Add Resi Core for targets that cut addresses from lists.

Unlimited proxies

Most threadsBest fit

Package #6 · World MIX · 50,000 IP · 5,000 threads

The largest package: one IP rarely returns to a target, even on a base of hundreds of thousands of lines. Traffic is not counted.

$1390 per monthor $5.80 per hour

Unlimited proxies

A checker up to 2,500 threads

Package #4 · World MIX · 30,000 IP · 2,500 threads

Enough for a checker that holds up to 2,500 connections, at almost 30% less than package #6.

$990 per monthor $4.20 per hour

Resi Core

Strict targets

2M+ IPs · 200+ countries · no thread limit

A new home IP on every check. A target reply weighs kilobytes, so one gigabyte covers thousands of checks.

from $0.49 per GB1 GB for $0.85

Open 5,000 threads in an hour

Pick the package, take the free hour, run the checker on the full pool.

Pricing Grab a free hour