ใส่รายการ 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 ในวงเล็บเหลี่ยมหากนั่นเป็นรูปแบบจริง สคริปต์ปฏิเสธอินพุตที่ไม่รองรับแทนการเดา และเอาต์พุตไม่บอกความพร้อมใช้งาน ความไม่เปิดเผยตัวตน ประเทศหรือความเร็ว สิ่งเหล่านี้ต้องใช้การทดสอบการเชื่อมต่อที่ควบคุมเงื่อนไข

บทความที่เกี่ยวข้อง