សម្អាតបញ្ជីប្រូកស៊ី IP:ច្រកដោយ Python
ផ្ទៀងផ្ទាត់ឯកសារ 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 ក្នុងតង្កៀបការ៉េ បើវាជាទម្រង់ពិត។ ស្គ្រីបបដិសេធទិន្នន័យមិនគាំទ្រជំនួសការទាយ ហើយលទ្ធផលមិនប្រាប់អំពីភាពអាចប្រើ អនាមិកភាព ប្រទេស ឬល្បឿនទេ។ ទាំងនេះត្រូវការតេស្តភ្ជាប់ដែលគ្រប់គ្រងលក្ខខណ្ឌ។