Làm sạch danh sách proxy IP:cổng bằng Python
Kiểm tra tệp IPv4 đơn giản, chuẩn hóa cổng và xóa trùng nhưng giữ các cổng khác nhau trên cùng IP.
Đặt một mục IPv4 IP:port mỗi dòng trong proxies.txt. Tất cả phải thuộc một giao thức proxy đã biết. Nếu thu thập từ danh sách proxy miễn phí, tách giao thức trước khi tạo đầu vào văn bản này. Việc làm sạch không nhận URL có thông tin đăng nhập, cột CSV hay địa chỉ IPv6.
Lưu tập lệnh dùng thư viện chuẩn này thành clean-proxies.py trong cùng thư mục:
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")
Chạy từ thư mục đó:
uv run --no-project python clean-proxies.py
Kiểm tra thông báo dòng bỏ qua và proxies-clean.txt; tệp đầu vào vẫn nguyên vẹn. Đầu ra giữ thứ tự xuất hiện đầu tiên và xóa trùng theo địa chỉ cộng cổng dạng số. Hai bản 203.0.113.10:8080 và một 203.0.113.10:3128 cho hai điểm cuối. Cổng thập phân 08080 được chuẩn hóa thành 8080.
Địa chỉ tài liệu chỉ minh họa định dạng. Cú pháp IPv4 hợp lệ gồm cả địa chỉ riêng và đặc biệt, nên mục đã làm sạch chưa chắc truy cập công khai được. Thêm chính sách địa chỉ rõ ràng nếu chỉ cần danh sách công khai.
Với đầu vào HTTP/SOCKS hỗn hợp, giữ giao thức trong tệp riêng hoặc một cột; đừng suy từ cổng 1080. Dùng bộ phân tích IPv6 trong ngoặc vuông nếu đó là định dạng thực. Tập lệnh từ chối đầu vào không hỗ trợ thay vì đoán; đầu ra không cho biết khả dụng, ẩn danh, quốc gia hay tốc độ. Chúng cần kiểm tra kết nối có kiểm soát.