ProxyHub MCP nəticələrini IP:Port faylına yazın
list_proxies JSON cavabını oxuyun, xətaları idarə edin və məlumatı canlı sınaqla qarışdırmadan təmiz HTTP proksi faylı saxlayın.
ProxyHub MCP-dən hər sətirdə bir IP:port almaq üçün çatdan köçürülmüş mətnlə deyil, tam JSON-RPC cavabı ilə başlayın.
- MCP müştərinizdən
list_proxiesçağırın vətypedəyərinihttpedin. - Tam cavabı
mcp-response.jsonkimi saxlayın. - Standart kitabxanadan istifadə edən aşağıdakı çeviricini cavabın yanında
mcp-to-file.pykimi saxlayın.
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")
Həmin qovluqda işə salın:
uv run --no-project python mcp-to-file.py
Çap edilən sayı və http-proxies.txt faylını yoxlayın. İlkin cavab saxlanılır. JSON-RPC xətaları və alət səviyyəsində isError cavabları xəta yaradır; uyğun nəticəsi olmayan uğurlu cavab boş fayl yazır və sıfır bildirir. Alət hər çağırışda ən çox 100 qeyd verir, buna görə çıxış məhz qaytarılmış seçimdir, mütləq bütün HTTP proksi siyahısı deyil.
Çevirici yalnız http kimi bildirilən sətirləri qəbul edir və hazırkı toplayıcının IPv4 formatına uyğun olaraq IPv4 sintaksisini və port aralığını yoxlayır. Başqa protokol üçün bu məlumatı qoruyun və ya ayrı fayl işlədin; sadə qarışıq IP:port faylı qəbul edən müştəriyə hansı əl sıxmasından istifadə etməli olduğunu demir.
İxrac edilmiş sətir hələ də məlumatdır. updated_at saxlanılan məlumatın yenilənmə vaxtını qeyd edir, sizin şəbəkədən canlı sorğunu yox. Seçilmiş nöqtələri lazım olan təyinata məhdud HTTP proksi sorğusu ilə sınayın. MCP çağırışı alınmayıbsa, məlumatın alınmasını araşdırın; sonradan ixrac edilmiş nöqtədən sorğu alınmayıbsa, həmin ayrıca proksi bağlantısını araşdırın.