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 ہو تو موزوں parser استعمال کریں۔ اسکرپٹ اندازے کے بجائے غیر معاون ان پٹ رد کرتی ہے؛ آؤٹ پٹ دستیابی، گمنامی، ملک یا رفتار نہیں بتاتا۔ ان کے لیے کنٹرول شدہ کنکشن ٹیسٹ چاہیے۔