ProxyHub MCP’dan har satrda bittadan IP:port olish uchun chatdan ko‘chirilgan matn emas, to‘liq JSON-RPC javobidan boshlang.

  1. MCP mijozingiz orqali list_proxiesni chaqirib, typeni http qilib belgilang.
  2. To‘liq javobni mcp-response.json sifatida saqlang.
  3. Quyidagi standart kutubxonadan foydalanadigan o‘giruvchini javob yoniga mcp-to-file.py sifatida saqlang.
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")

O‘sha katalogda ishga tushiring:

uv run --no-project python mcp-to-file.py

Chiqarilgan son va http-proxies.txtni tekshiring. Dastlabki javob saqlanib qoladi. JSON-RPC xatolari va vosita darajasidagi isError javoblari xato chiqaradi; mos yozuvsiz muvaffaqiyatli javob bo‘sh fayl yozib, nolni bildiradi. Vosita har chaqirishda ko‘pi bilan 100 yozuv beradi, shuning uchun chiqish aynan qaytarilgan tanlovdir, butun HTTP proksilar ro‘yxati bo‘lishi shart emas.

O‘giruvchi faqat http deb bildirilgan satrlarni qabul qilib, hozirgi yig‘uvchining IPv4 formatiga mos ravishda IPv4 sintaksisi va port oralig‘ini tekshiradi. Boshqa protokol uchun bu ma’lumotni saqlang yoki alohida fayl ishlating; oddiy aralash IP:port fayli qabul qiluvchi mijozga qaysi qo‘l siqish jarayonidan foydalanishni aytmaydi.

Eksport qilingan satr hamon ma’lumotdir. updated_at saqlangan ma’lumot yangilangan vaqtni qayd etadi, sizning tarmog‘ingizdan jonli so‘rovni emas. Tanlangan nuqtalarni kerakli manzilga chegaralangan HTTP proksi so‘rovi bilan sinang. MCP chaqiruvi bajarilmasa, ma’lumot olishni tekshiring; keyin eksport qilingan nuqta orqali so‘rov bajarilmasa, o‘sha alohida proksi ulanishini tekshiring.

O'xshash maqolalar