אשרו את ה-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. חיבורים מעל המגבלה נותנים חיבורים נדחים, לא יותר מהירות.
לכל פרוקסי הוא פותח שני שירותי הד ומחליט אם הכתובת מסתירה אתכם לגמרי, מודיעה שהיא פרוקסי או מדליפה את ה-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, כי חיבורים מעליה נדחים ולא נכנסים לתור.
timeout של 10 שניות עם ניסיון חוזר אחד מכתובת אחרת מבזבז הכי מעט חיבורים; timeout ארוך נתקע על יעדים מתים.
לפני ההרצה הוציאו כתובות איטיות ומדליפות בעזרת סקריפט האנונימיות למעלה או Socks List Processor. בהרצות ארוכות קראו את הרשימה מחדש כל 10 דקות כדי שייכנסו כתובות חדשות.
לבדיקת שפיות מהירה רשימת הפרוקסי החינמית מראה את הפורמט שהבודק מצפה לו.
בודק נתקל במגבלות של חיבורים ושל מספר כתובות, וזו העבודה של חבילות ללא הגבלה. הוסיפו Resi Core ליעדים שחותכים כתובות מרשימות.
הכי הרבה חיבוריםההתאמה הטובה ביותר
החבילה הגדולה ביותר: IP אחד חוזר ליעד לעיתים רחוקות, גם במאגר של מאות אלפי שורות. התעבורה לא נספרת.
$1390 לחודשאו $5.80 לשעה
בודק עד 2500 חיבורים
מספיק לבודק שמחזיק עד 2500 חיבורים, בכמעט 30% פחות מחבילה #6.
$990 לחודשאו $4.20 לשעה
יעדים קפדניים
IP ביתי חדש בכל בדיקה. תשובה של היעד שוקלת קילובייטים, אז ג'יגה-בייט אחד מכסה אלפי בדיקות.
החל מ- $0.49 ל-GB1 GB ב-$0.85
בחרו חבילה, קחו את השעה החינמית והריצו את הבודק על המאגר המלא.