Очистите листу проксија IP:port помоћу Python-а
Проверите једноставну IPv4 датотеку, нормализујте портове и уклоните дупликате, задржавајући различите портове истог IP-а.
Ставите једну IPv4 ставку IP:port по реду у proxies.txt. Све морају припадати једном познатом прокси протоколу. Ако их прикупљате са листе бесплатних проксија, раздвојите протоколе пре овог текстуалног улаза. Чишћење не прихвата URL-ове са приступним подацима, CSV колоне или IPv6 адресе.
Сачувајте ову скрипту са стандардном библиотеком као clean-proxies.py у истом директоријуму:
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")
Покрените је из тог директоријума:
uv run --no-project python clean-proxies.py
Прегледајте обавештења о прескоченим редовима и proxies-clean.txt; улазна датотека остаје нетакнута. Излаз задржава редослед првог појављивања и уклања дупликате по адреси и нумеричком порту. Две копије 203.0.113.10:8080 и једна 203.0.113.10:3128 дају две тачке. Децимални порт 08080 нормализује се у 8080.
Документацијске адресе приказују само формат. Исправна IPv4 синтакса укључује приватне и посебне адресе, па очишћена ставка није нужно јавно доступна. Додајте изричиту политику адреса ако требате само јавну листу.
За мешани HTTP/SOCKS улаз задржите протокол у засебним датотекама или колони; не закључујте га по порту 1080. За стварни формат IPv6 у угластим заградама користите одговарајући парсер. Скрипта одбија неподржани улаз уместо погађања, а излаз не говори о доступности, анонимности, држави или брзини. То захтева контролисане тестове везе.