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 ആണെങ്കിൽ അനുയോജ്യമായ പാർസർ ഉപയോഗിക്കുക. സ്ക്രിപ്റ്റ് ഊഹിക്കുന്നതിനു പകരം പിന്തുണയില്ലാത്ത ഇൻപുട്ട് തള്ളുന്നു; ഔട്ട്പുട്ട് ലഭ്യത, അജ്ഞാതത്വം, രാജ്യം, വേഗം എന്നിവ പറയുന്നില്ല. അവയ്ക്ക് നിയന്ത്രിത കണക്ഷൻ പരീക്ഷണങ്ങൾ വേണം.

അനുബന്ധ ലേഖനങ്ങൾ