ລ້າງລາຍການພຣັອກຊີ 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 ໃນວົງເລັບສີ່ຫຼ່ຽມຖ້ານັ້ນແມ່ນຮູບແບບຈິງ. ສະຄຣິບປະຕິເສດອິນພຸດທີ່ບໍ່ຮອງຮັບແທນການເດົາ; ເອົາພຸດບໍ່ບອກຄວາມພ້ອມໃຊ້ ຄວາມນິລະນາມ ປະເທດ ຫຼືຄວາມໄວ. ສິ່ງເຫຼົ່ານີ້ຕ້ອງທົດສອບການເຊື່ອມຕໍ່ແບບຄວບຄຸມ.