Poseu una entrada IPv4 IP:port per línia a proxies.txt. Totes han de pertànyer a un únic protocol proxy conegut. Si les recolliu de la llista de proxys gratuïts, separeu els protocols abans de preparar aquesta entrada textual. La neteja no accepta URL amb credencials, columnes CSV ni adreces IPv6.

Deseu aquest script de biblioteca estàndard com a clean-proxies.py al mateix directori:

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

Executeu-lo des d’aquell directori:

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

Reviseu els avisos de línies omeses i proxies-clean.txt; el fitxer d’entrada queda intacte. La sortida conserva l’ordre de primera aparició i elimina duplicats per adreça més port numèric. Dues còpies de 203.0.113.10:8080 i una de 203.0.113.10:3128 produeixen dos punts. El port decimal 08080 es normalitza a 8080.

Les adreces de documentació només il·lustren el format. La sintaxi IPv4 vàlida inclou adreces privades i especials, de manera que una entrada neta no és necessàriament accessible públicament. Afegiu una política explícita d’adreces si necessiteu una llista només pública.

Per a una entrada HTTP/SOCKS mixta, conserveu el protocol en fitxers separats o una columna; no el deduïu del port 1080. Feu servir un analitzador d’IPv6 entre claudàtors si aquest és el format real. L’script rebutja entrades no admeses en lloc d’endevinar, i la sortida no informa de disponibilitat, anonimat, país ni velocitat. Això requereix proves de connexió controlades.

Articles relacionats