Maglagay ng isang IPv4 entry na IP:port bawat linya sa proxies.txt. Dapat iisang kilalang proxy protocol ang lahat. Kung nangongolekta sa listahan ng mga libreng proxy, paghiwalayin ang protocol bago gawin ang text input na ito. Hindi tinatanggap ng paglilinis ang URL na may kredensyal, CSV column o IPv6 address.

I-save ang script na ito na gumagamit ng standard library bilang clean-proxies.py sa parehong directory:

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")

Patakbuhin ito mula roon:

uv run --no-project python clean-proxies.py

Suriin ang abiso sa nilaktawang linya at proxies-clean.txt; nananatiling buo ang input file. Pinananatili ng output ang pagkakasunod ng unang paglitaw at nag-aalis ng doblado batay sa address kasama ang numerikong port. Dalawang kopya ng 203.0.113.10:8080 at isang 203.0.113.10:3128 ay nagbubunga ng dalawang endpoint. Ang decimal port na 08080 ay ginagawang 8080.

Panghalimbawa lang ng format ang mga address sa dokumentasyon. Kasama sa wastong IPv4 syntax ang pribado at espesyal na address, kaya hindi tiyak na maaabot nang publiko ang malinis na entry. Magdagdag ng tahasang patakaran sa address kung pampubliko lang ang listahan.

Para sa halong HTTP/SOCKS input, itago ang protocol sa magkahiwalay na file o column; huwag hulaan mula sa port 1080. Gumamit ng parser para sa IPv6 na may square bracket kung iyon ang aktuwal na format. Tinatanggihan ng script ang hindi suportadong input sa halip na manghula, at walang sinasabi ang output tungkol sa availability, anonymity, bansa o bilis. Kailangan para roon ang kontroladong pagsubok ng koneksyon.

Kaugnay na mga artikulo