Tisztítson IP:port proxylistát Pythonnal
Ellenőrizzen egyszerű IPv4-fájlt, normalizálja a portokat és törölje az ismétléseket, megtartva azonos IP különböző portjait.
Tegyen soronként egy IPv4 IP:port bejegyzést a proxies.txt fájlba. Mindnek egy ismert proxyprotokollhoz kell tartoznia. Ha az ingyenes proxyk listájából gyűjt, a szöveges bemenet előtt különítse el a protokollokat. Ez a tisztítás nem fogad hitelesítő adatot tartalmazó URL-t, CSV-oszlopot vagy IPv6-címet.
Ezt a szabványos könyvtárat használó szkriptet mentse clean-proxies.py néven ugyanabba a könyvtárba:
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")
Abból a könyvtárból futtassa:
uv run --no-project python clean-proxies.py
Vizsgálja meg a kihagyott sorok jelzéseit és a proxies-clean.txt fájlt; a bemenet érintetlen marad. A kimenet megőrzi az első megjelenés sorrendjét, és cím plusz számszerű port alapján szűr ismétlést. Két 203.0.113.10:8080 és egy 203.0.113.10:3128 két végpontot ad. A tízes számrendszerű 08080 port 8080 értékre normalizálódik.
A dokumentációs címek csak a formátumot mutatják. Az érvényes IPv4-szintaxis magán- és különleges címeket is tartalmaz, így egy tisztított bejegyzés nem feltétlenül érhető el nyilvánosan. Kizárólag nyilvános listához adjon egyértelmű címszabályt.
Vegyes HTTP/SOCKS-bemenetnél tartsa meg a protokollt külön fájlokban vagy oszlopban; ne következtessen a 1080-as portból. Szögletes zárójeles IPv6-hoz megfelelő elemzőt használjon, ha ez a tényleges formátum. A szkript találgatás helyett elutasítja a nem támogatott bemenetet, a kimenet pedig nem mond semmit elérhetőségről, anonimitásról, országról vagy sebességről. Ezekhez ellenőrzött kapcsolati próbák kellenek.