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