Pastroni një listë proxy IP:portë me Python
Kontrolloni një skedar të thjeshtë IPv4, normalizoni portat dhe hiqni dublikatat duke ruajtur portat e ndryshme të së njëjtës IP.
Vendosni një zë IPv4 IP:port për rresht në proxies.txt. Të gjithë duhet t’i përkasin një protokolli proxy të njohur. Nëse i mblidhni nga lista e proxy-ve falas, ndani protokollet para krijimit të kësaj hyrjeje tekstuale. Pastrimi nuk pranon URL me kredenciale, kolona CSV apo adresa IPv6.
Ruajeni këtë skript me bibliotekën standarde si clean-proxies.py në të njëjtën dosje:
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")
Ekzekutojeni nga ajo dosje:
uv run --no-project python clean-proxies.py
Kontrolloni njoftimet për rreshtat e anashkaluar dhe proxies-clean.txt; skedari hyrës mbetet i paprekur. Dalja ruan rendin e shfaqjes së parë dhe heq dublikatat sipas adresës së bashku me portën numerike. Dy kopje të 203.0.113.10:8080 dhe një të 203.0.113.10:3128 japin dy pika. Porta dhjetore 08080 normalizohet në 8080.
Adresat e dokumentacionit ilustrojnë vetëm formatin. Sintaksa IPv4 e vlefshme përfshin adresa private e të posaçme, ndaj një zë i pastruar nuk është patjetër i arritshëm publikisht. Shtoni politikë të qartë adresash për listë vetëm publike.
Për hyrje HTTP/SOCKS të përzier, mbajeni protokollin në skedarë të veçantë ose kolonë; mos e nxirrni nga porta 1080. Përdorni analizues IPv6 me kllapa katrore nëse ky është formati real. Skripti refuzon hyrjen e pambështetur në vend që të hamendësojë dhe dalja nuk tregon disponueshmëri, anonimitet, shtet apo shpejtësi. Këto kërkojnë prova lidhjeje të kontrolluara.