Siivoa IP:portti-välityspalvelinluettelo Pythonilla
Tarkista yksinkertainen IPv4-tiedosto, normalisoi portit ja poista kaksoiskappaleet säilyttäen saman IP:n eri portit.
Kirjoita yksi IPv4-merkintä IP:port riviä kohti tiedostoon proxies.txt. Kaikkien on oltava yhtä tunnettua välityspalvelinprotokollaa. Jos keräät niitä ilmaisten välityspalvelinten luettelosta, erottele protokollat ennen tämän tekstisyötteen muodostamista. Siivous ei hyväksy tunnistetietoja sisältäviä URL-osoitteita, CSV-sarakkeita eikä IPv6-osoitteita.
Tallenna tämä vakiokirjastoa käyttävä skripti nimellä clean-proxies.py samaan hakemistoon:
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")
Suorita se kyseisestä hakemistosta:
uv run --no-project python clean-proxies.py
Tarkista ohitettujen rivien ilmoitukset ja proxies-clean.txt; syötetiedosto säilyy ennallaan. Tuloste säilyttää ensiesiintymisjärjestyksen ja poistaa kaksoiskappaleet osoitteen ja numeerisen portin yhdistelmästä. Kaksi 203.0.113.10:8080-kopiota ja yksi 203.0.113.10:3128 tuottavat kaksi päätepistettä. Desimaaliportti 08080 normalisoituu arvoon 8080.
Dokumentaatio-osoitteet näyttävät vain muodon. Kelvollinen IPv4-syntaksi sisältää yksityiset ja erityiskäyttöiset osoitteet, joten siivottu merkintä ei välttämättä ole julkisesti tavoitettava. Lisää nimenomainen osoitekäytäntö, jos tarvitset vain julkisia osoitteita.
Säilytä sekoitetun HTTP/SOCKS-syötteen protokollatieto eri tiedostoissa tai sarakkeessa; älä päättele sitä portista 1080. Käytä hakasulkeellisen IPv6:n jäsennintä, jos se on todellinen muoto. Skripti hylkää tukemattoman syötteen arvaamisen sijaan, eikä tuloste kerro saatavuudesta, anonyymiydestä, maasta tai nopeudesta. Niihin tarvitaan hallittuja yhteystestejä.