Zet één IPv4-vermelding IP:port per regel in proxies.txt. Alle vermeldingen moeten bij één bekend proxyprotocol horen. Verzamel je uit de gratis proxylijst, scheid de protocollen dan vóór je deze tekstinvoer maakt. Deze opschoning accepteert geen URL’s met inloggegevens, CSV-kolommen of IPv6-adressen.

Sla dit script met alleen de standaardbibliotheek in dezelfde map op als clean-proxies.py:

from ipaddress import IPv4Address
from pathlib import Path

seen = set()
cleaned = []

for number, raw in enumerate(
    Path("proxies.txt").read_text(encoding="utf-8").splitlines(),
    start=1,
):
    text = raw.strip()
    if not text:
        continue
    try:
        host, port_text = text.rsplit(":", 1)
        host = str(IPv4Address(host))
        port = int(port_text)
        if not 1 <= port <= 65535:
            raise ValueError("port out of range")
    except ValueError:
        print(f"Skipping line {number}: invalid IPv4 endpoint")
        continue

    endpoint = (host, port)
    if endpoint not in seen:
        seen.add(endpoint)
        cleaned.append(f"{host}:{port}")

output = "\n".join(cleaned)
Path("proxies-clean.txt").write_text(
    output + ("\n" if output else ""),
    encoding="utf-8",
)
print(f"Saved {len(cleaned)} endpoints")

Voer het vanuit die map uit:

uv run --no-project python clean-proxies.py

Bekijk meldingen over overgeslagen regels en proxies-clean.txt; het invoerbestand blijft intact. De uitvoer behoudt de volgorde van eerste voorkomen en ontdubbelt op adres plus numerieke poort. Twee exemplaren van 203.0.113.10:8080 en één van 203.0.113.10:3128 leveren twee eindpunten. Decimale poort 08080 wordt genormaliseerd naar 8080.

De documentatieadressen illustreren alleen de opmaak. Geldige IPv4-syntaxis omvat privé- en speciale adressen, dus een opgeschoonde vermelding is niet noodzakelijk openbaar bereikbaar. Voeg expliciet adresbeleid toe als de lijst alleen openbare adressen mag bevatten.

Bewaar bij gemengde HTTP/SOCKS-invoer het protocol in aparte bestanden of een kolom; leid het niet af van poort 1080. Gebruik een parser voor IPv6 tussen vierkante haken als dat de echte opmaak is. Dit script weigert niet-ondersteunde invoer in plaats van te gokken. De uitvoer zegt niets over beschikbaarheid, anonimiteit, land of snelheid. Dat vereist gecontroleerde verbindingstests.

Gerelateerde artikelen