Vyčistite zoznam proxy IP:port pomocou Pythonu
Overte jednoduchý IPv4 súbor, normalizujte porty a odstráňte duplicity pri zachovaní rôznych portov rovnakej IP.
Vložte jednu položku IPv4 IP:port na riadok do proxies.txt. Všetky musia patriť k jednému známemu proxy protokolu. Ak ich zbierate zo zoznamu bezplatných proxy, oddeľte protokoly pred vytvorením tohto textového vstupu. Čistenie neprijíma URL s prihlasovacími údajmi, stĺpce CSV ani IPv6 adresy.
Uložte tento skript so štandardnou knižnicou ako clean-proxies.py do rovnakého adresára:
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")
Spustite ho z tohto adresára:
uv run --no-project python clean-proxies.py
Prezrite hlásenia preskočených riadkov a proxies-clean.txt; vstupný súbor zostáva nedotknutý. Výstup zachováva poradie prvého výskytu a odstraňuje duplicity podľa adresy a číselného portu. Dve kópie 203.0.113.10:8080 a jedna 203.0.113.10:3128 vytvoria dva body. Desiatkový port 08080 sa normalizuje na 8080.
Dokumentačné adresy len ukazujú formát. Platná syntax IPv4 zahŕňa súkromné a zvláštne adresy, takže vyčistená položka nemusí byť verejne dosiahnuteľná. Pre zoznam iba verejných adries pridajte výslovnú adresnú politiku.
Pri zmiešanom HTTP/SOCKS vstupe zachovajte protokol v oddelených súboroch alebo stĺpci; neodvodzujte ho z portu 1080. Pre skutočný formát IPv6 v hranatých zátvorkách použite príslušný parser. Skript odmieta nepodporovaný vstup namiesto hádania; výstup nič nehovorí o dostupnosti, anonymite, krajine alebo rýchlosti. Na to treba riadené testy spojenia.