IP:порт прокси тізімін 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 болса, тиісті талдағыш қолданыңыз. Скрипт болжаудың орнына қолдамайтын кірісті қабылдамайды; шығыс қолжетімділік, анонимдік, ел не жылдамдықты білдірмейді. Бұларға бақыланатын қосылым сынақтары керек.