IP:port proksi ro‘yxatini Python bilan tozalash
Oddiy IPv4 faylini tekshiring, portlarni birxillashtiring va bir IPdagi turli portlarni saqlab takrorlarni o‘chiring.
Har satrga bir IPv4 IP:port yozuvini proxies.txt fayliga joylang. Hammasi bitta ma’lum proksi protokoliga tegishli bo‘lsin. Bepul proksilar ro‘yxatidan yig‘sangiz, bu matnli kirishni tayyorlashdan oldin protokollarni ajrating. Tozalash kirish ma’lumotli URL, CSV ustunlari yoki IPv6 manzillarini qabul qilmaydi.
Standart kutubxonali bu skriptni ayni katalogda clean-proxies.py sifatida saqlang:
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")
Shu katalogdan bajaring:
uv run --no-project python clean-proxies.py
Tashlangan satr xabarlari va proxies-clean.txt faylini tekshiring; kirish fayli o‘zgarmaydi. Chiqish birinchi uchrash tartibini saqlaydi va manzil bilan sonli port birikmasi bo‘yicha takrorlarni olib tashlaydi. Ikki 203.0.113.10:8080 nusxasi va bir 203.0.113.10:3128 ikki nuqta beradi. O‘nlik port 08080, 8080 ko‘rinishiga keltiriladi.
Hujjat manzillari faqat formatni ko‘rsatadi. To‘g‘ri IPv4 sintaksisi xususiy va maxsus manzillarni ham qamraydi, shu sabab toza yozuv albatta ommaviy kirishli emas. Faqat ommaviy ro‘yxat kerak bo‘lsa, aniq manzil siyosati qo‘shing.
Aralash HTTP/SOCKS kirishida protokolni alohida fayl yoki ustunda saqlang; 1080 portidan taxmin qilmang. Haqiqiy format qavsli IPv6 bo‘lsa, mos tahlilchi ishlating. Skript taxmin qilish o‘rniga qo‘llanmaydigan kirishni rad etadi; chiqish mavjudlik, anonimlik, mamlakat yoki tezlikni bildirmaydi. Bular uchun nazoratli ulanish sinovlari kerak.