Lưu kết quả ProxyHub MCP thành tệp IP:Port
Đọc phản hồi JSON list_proxies, xử lý lỗi và lưu tệp proxy HTTP gọn gàng, phân biệt dữ liệu với kiểm tra kết nối thực tế.
Để tạo mỗi dòng một IP:port từ ProxyHub MCP, hãy bắt đầu bằng phản hồi JSON-RPC đầy đủ, không dùng khối văn bản sao chép từ cuộc trò chuyện.
- Gọi
list_proxiesqua máy khách MCP vớitypeđặt thànhhttp. - Lưu toàn bộ phản hồi thành
mcp-response.json. - Lưu trình chuyển đổi dùng thư viện chuẩn dưới đây thành
mcp-to-file.pycạnh tệp phản hồi.
import json
from ipaddress import IPv4Address
from pathlib import Path
reply = json.loads(
Path("mcp-response.json").read_text(encoding="utf-8")
)
if "error" in reply:
raise RuntimeError("MCP returned a JSON-RPC error")
result = reply["result"]
if result.get("isError"):
raise RuntimeError("The proxy tool reported an error")
data = result["structuredContent"]
endpoints = []
seen = set()
for row in data["proxies"]:
if row["type"] != "http":
continue
host = str(IPv4Address(row["ip"]))
port = row["port"]
if type(port) is not int or not 1 <= port <= 65535:
raise ValueError("Invalid proxy port")
endpoint = f"{host}:{port}"
if endpoint not in seen:
seen.add(endpoint)
endpoints.append(endpoint)
text = "\n".join(endpoints)
Path("http-proxies.txt").write_text(
text + ("\n" if text else ""),
encoding="utf-8",
)
print(f"Saved {len(endpoints)} HTTP endpoints")
Chạy trong thư mục đó:
uv run --no-project python mcp-to-file.py
Kiểm tra số lượng in ra và http-proxies.txt. Phản hồi gốc được giữ lại. Lỗi JSON-RPC và phản hồi isError ở cấp công cụ sẽ gây lỗi; phản hồi thành công nhưng không có mục khớp sẽ ghi tệp rỗng và báo số không. Công cụ giới hạn tối đa 100 mục mỗi lần gọi, nên đầu ra là tập lựa chọn vừa trả về, không nhất thiết là toàn bộ danh sách proxy HTTP.
Trình chuyển đổi chỉ nhận các dòng được báo là http và kiểm tra cú pháp IPv4 cùng khoảng cổng, phù hợp định dạng IPv4 của bộ thu thập hiện tại. Với giao thức khác, hãy giữ thông tin đó hoặc dùng tệp riêng; tệp IP:port trộn lẫn đơn thuần không cho máy khách nhận biết phải dùng cách bắt tay nào.
Dòng đã xuất vẫn chỉ là dữ liệu. updated_at ghi thời điểm cập nhật dữ liệu lưu trữ, không phải yêu cầu trực tiếp từ mạng của bạn. Thử các đầu cuối được chọn bằng yêu cầu qua proxy HTTP có giới hạn tới đích cần dùng. Nếu lệnh gọi MCP thất bại, hãy xem việc lấy dữ liệu; nếu yêu cầu sau đó qua một đầu cuối đã xuất thất bại, hãy xem kết nối proxy riêng đó.