Linisin ang listahan ng proxy na IP:port gamit ang Python
Suriin ang payak na IPv4 file, gawing pare-pareho ang port at alisin ang doblado habang pinananatili ang magkaibang port sa iisang IP.
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.