Her satıra bir IPv4 IP:port girdisini proxies.txt dosyasına koyun. Tüm girdiler bilinen tek bir proxy protokolüne ait olmalı. Ücretsiz proxy listesinden topluyorsanız bu düz metin girdisini oluşturmadan önce protokolleri ayırın. Bu temizlik kimlik bilgili URL, CSV sütunu veya IPv6 adresi kabul etmez.

Standart kitaplık kullanan bu betiği aynı dizine clean-proxies.py olarak kaydedin:

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")

O dizinden çalıştırın:

uv run --no-project python clean-proxies.py

Atlanan satır bildirimlerini ve proxies-clean.txt dosyasını inceleyin; girdi dosyası değişmeden kalır. Çıktı ilk görülme sırasını korur ve adres ile sayısal port birleşimine göre yinelenenleri siler. İki 203.0.113.10:8080 kopyası ile bir 203.0.113.10:3128 iki uç nokta üretir. Ondalık port 08080, 8080 olarak normalleştirilir.

Belgelendirme adresleri yalnız biçimi gösterir. Geçerli IPv4 sözdizimi özel ve özel amaçlı adresleri de kapsar; temiz girdi mutlaka genel erişilebilir değildir. Yalnız genel liste için açık adres politikası ekleyin.

Karışık HTTP/SOCKS girdisinde protokol bilgisini ayrı dosyalarda veya sütunda saklayın; port 1080’den çıkarmayın. Gerçek biçim köşeli ayraçlı IPv6 ise uygun ayrıştırıcı kullanın. Betik tahmin etmek yerine desteklenmeyen girdiyi reddeder; çıktı erişilebilirlik, anonimlik, ülke veya hız hakkında bir şey söylemez. Bunlar kontrollü bağlantı testleri gerektirir.

İlgili makaleler