Αποθήκευση αποτελεσμάτων ProxyHub MCP σε αρχείο IP:Port
Διαβάστε την απόκριση JSON του list_proxies, χειριστείτε σφάλματα και αποθηκεύστε καθαρό αρχείο HTTP proxy, διαχωρίζοντας τα δεδομένα από τους ζωντανούς ελέγχους.
Για ένα IP:port ανά γραμμή από το ProxyHub MCP, ξεκινήστε από την πλήρη απόκριση JSON-RPC, όχι από κείμενο αντιγραμμένο από συνομιλία.
- Καλέστε το
list_proxiesμέσω του πελάτη MCP με τοtypeορισμένο σεhttp. - Αποθηκεύστε την πλήρη απόκριση ως
mcp-response.json. - Αποθηκεύστε τον παρακάτω μετατροπέα, που χρησιμοποιεί την τυπική βιβλιοθήκη, ως
mcp-to-file.pyδίπλα στην απόκριση.
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")
Εκτελέστε τον σε εκείνον τον κατάλογο:
uv run --no-project python mcp-to-file.py
Ελέγξτε το τυπωμένο πλήθος και το http-proxies.txt. Η αρχική απόκριση διατηρείται. Τα σφάλματα JSON-RPC και οι αποκρίσεις isError στο επίπεδο του εργαλείου εγείρουν σφάλματα· επιτυχής απόκριση χωρίς αντιστοιχίες γράφει κενό αρχείο και αναφέρει μηδέν. Το όριο του εργαλείου είναι έως 100 καταχωρίσεις ανά κλήση, άρα η έξοδος αντιπροσωπεύει την επιστραφείσα επιλογή, όχι απαραίτητα ολόκληρη τη λίστα HTTP proxy.
Ο μετατροπέας δέχεται μόνο γραμμές που δηλώνονται ως http και ελέγχει τη σύνταξη IPv4 και το εύρος θύρας, σύμφωνα με τη μορφή IPv4 του τρέχοντος συλλέκτη. Για άλλο πρωτόκολλο, διατηρήστε την πληροφορία ή χρησιμοποιήστε χωριστό αρχείο· ένα απλό μικτό αρχείο IP:port δεν λέει στον πελάτη που το λαμβάνει ποια χειραψία να χρησιμοποιήσει.
Μια εξαγόμενη γραμμή παραμένει δεδομένο. Το updated_at καταγράφει τον χρόνο ενημέρωσης αποθηκευμένων δεδομένων, όχι ζωντανό αίτημα από το δίκτυό σας. Δοκιμάστε τα επιλεγμένα σημεία με περιορισμένο αίτημα μέσω HTTP proxy προς τον απαιτούμενο προορισμό. Αν απέτυχε η κλήση MCP, ερευνήστε την ανάκτηση δεδομένων· αν αποτύχει αργότερα αίτημα μέσω εξαγόμενου σημείου, ερευνήστε εκείνη τη χωριστή σύνδεση proxy.