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 হলে তার পার্সার ব্যবহার করুন। স্ক্রিপ্ট অনুমানের বদলে অসমর্থিত ইনপুট প্রত্যাখ্যান করে; আউটপুট উপলভ্যতা, বেনামিত্ব, দেশ বা গতি জানায় না। সেগুলোর জন্য নিয়ন্ত্রিত সংযোগ পরীক্ষা দরকার।