Vnesite en vnos IPv4 IP:port na vrstico v proxies.txt. Vsi morajo pripadati enemu znanemu protokolu proxy. Če jih zbirate s seznama brezplačnih proxyjev, ločite protokole pred izdelavo tega besedilnega vhoda. Čiščenje ne sprejema URL-jev s poverilnicami, stolpcev CSV ali naslovov IPv6.

Ta skript s standardno knjižnico shranite kot clean-proxies.py v isti imenik:

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")

Zaženite ga iz tega imenika:

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

Preglejte obvestila o preskočenih vrsticah in proxies-clean.txt; vhodna datoteka ostane nedotaknjena. Izhod ohrani vrstni red prve pojavitve in odstrani dvojnike po naslovu in številskih vratih. Dve kopiji 203.0.113.10:8080 in ena 203.0.113.10:3128 ustvarijo dve točki. Desetiška vrata 08080 se normalizirajo v 8080.

Dokumentacijski naslovi prikazujejo le obliko. Veljavna skladnja IPv4 vključuje zasebne in posebne naslove, zato očiščen vnos ni nujno javno dosegljiv. Za izključno javni seznam dodajte izrecno naslovno politiko.

Pri mešanem vhodu HTTP/SOCKS ohranite protokol v ločenih datotekah ali stolpcu; ne sklepajte iz vrat 1080. Za dejansko obliko IPv6 v oglatih oklepajih uporabite ustrezen razčlenjevalnik. Skript zavrne nepodprt vhod namesto ugibanja; izhod ne pove nič o razpoložljivosti, anonimnosti, državi ali hitrosti. To zahteva nadzorovane preizkuse povezave.

Sorodni članki