Python ilə IP:port proksi siyahısını təmizləmək
Sadə IPv4 faylını yoxlayın, portları normallaşdırın və eyni IP-də fərqli portları saxlayaraq dublikatları silin.
Hər sətirdə bir IPv4 IP:port qeydini proxies.txt faylına yazın. Hamısı məlum bir proksi protokoluna aid olmalıdır. Pulsuz proksi siyahısından toplayırsınızsa, bu mətn girişini hazırlamazdan əvvəl protokolları ayırın. Təmizləmə giriş məlumatlı URL, CSV sütunu və IPv6 ünvanını qəbul etmir.
Standart kitabxana istifadə edən bu skripti eyni qovluqda clean-proxies.py kimi saxlayın:
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")
Həmin qovluqdan başladın:
uv run --no-project python clean-proxies.py
Buraxılmış sətir bildirişlərini və proxies-clean.txt faylını yoxlayın; giriş faylı toxunulmaz qalır. Çıxış ilk görünmə sırasını saxlayır və ünvanla rəqəmli port birləşməsinə görə dublikatları silir. İki 203.0.113.10:8080 nüsxəsi və bir 203.0.113.10:3128 iki son nöqtə yaradır. Onluq port 08080, 8080 kimi normallaşdırılır.
Sənədləşdirmə ünvanları yalnız formatı göstərir. Düzgün IPv4 sintaksisi özəl və xüsusi məqsədli ünvanları da əhatə edir; təmiz qeyd mütləq ictimai əlçatan deyil. Yalnız ictimai siyahı üçün açıq ünvan siyasəti əlavə edin.
Qarışıq HTTP/SOCKS girişində protokolu ayrıca fayllarda və ya sütunda saxlayın; 1080 portundan çıxarmayın. Həqiqi format mötərizəli IPv6-dırsa, uyğun təhliledici istifadə edin. Skript təxmin etmək əvəzinə dəstəklənməyən girişi rədd edir; çıxış əlçatanlıq, anonimlik, ölkə və sürət barədə heç nə demir. Bunlara nəzarətli bağlantı sınaqları lazımdır.