ضع إدخال 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 بين أقواس مربعة إذا كان هذا هو التنسيق الفعلي. يرفض السكربت الإدخال غير المدعوم بدل التخمين، ولا يدل الناتج على التوفر أو إخفاء الهوية أو البلد أو السرعة. تتطلب هذه اختبارات اتصال مضبوطة.

مقالات ذات صلة