Bu çeviri makine öğrenimi kullanılarak oluşturulmuştur ve %100 doğru olmayabilir. İngilizce versiyonu görüntüle

I2PControl JSON-RPC

I2PControl webapp üzerinden uzaktan router yönetimi API'si

I2PControl API Belgeleri

————-ekleme kontrolü————--

I2PControl, I2P router ile birlikte gelen (0.9.39 sürümünden itibaren) bir JSON-RPC 2.0 API’sidir. Yapılandırılmış JSON istekleri aracılığıyla router’ın kimlik doğrulamalı izlenmesini ve kontrolünü sağlar.

Varsayılan şifre: itoopie — bu fabrika varsayılanıdır ve güvenlik için hemen değiştirilmelidir.

1. Genel Bakış ve Erişim

UygulamaVarsayılan Uç NoktaProtokolVarsayılan olarak etkinNotlar
Java I2P (2.10.0+)http://127.0.0.1:7657/jsonrpc/HTTP❌ WebApps üzerinden etkinleştirilmelidir (Yönetim Paneli)Dahili web uygulaması
i2pd (C++ uygulaması)https://127.0.0.1:7650/HTTPS✅ Varsayılan olarak etkinEski eklenti davranışı

Java I2P durumunda, Router Console → WebApps → I2PControl bölümüne gidip etkinleştirmeniz gerekir (otomatik başlatılacak şekilde ayarlayın). Etkin hale geldikten sonra, tüm yöntemler için önce kimlik doğrulaması yapmanız ve bir oturum token’ı almanız gerekir.

2. JSON-RPC Formatı


{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "MethodName",
  "params": {
    /* named parameters */
  }
}

Tüm istekler JSON-RPC 2.0 yapısını takip eder:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": { /* data */ }
}

Başarılı bir yanıt result alanı içerir; başarısızlık durumunda ise bir error nesnesi döndürülür:

{
  "jsonrpc": "2.0",
  "id": "1",
  "error": {
    "code": -32001,
    "message": "Invalid password"
  }
}

veya

3. Kimlik Doğrulama Akışı

İstek (Kimlik Doğrulama)

curl -s -H "Content-Type: application/json" \
  -d '{
        "jsonrpc": "2.0",
        "id": "1",
        "method": "Authenticate",
        "params": {
          "API": 1,
          "Password": "itoopie"
        }
      }' \
  http://127.0.0.1:7657/jsonrpc/

Başarılı Yanıt

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "Token": "a1b2c3d4e5",
    "API": 1
  }
}
AlanYönTipAçıklama
APIİsteklongİstemci tarafından istenen I2PControl API sürümü. 1 kullanın.
PasswordİstekStringI2PControl ile kimlik doğrulamada kullanılan parola.
APIYanıtlongSunucu tarafından uygulanan birincil API sürümü.
TokenYanıtStringSonraki isteklerde kullanılacak kimlik doğrulama jetonu.

Bu Token‘ı sonraki tüm isteklerde params içinde eklemelisiniz.

4. Yöntemler ve Uç Noktalar

4.1 RouterInfo


Router hakkında anahtar telemetri verilerini getirir.

curl -s -H "Content-Type: application/json" \
  -d '{
        "jsonrpc": "2.0",
        "id": "2",
        "method": "RouterInfo",
        "params": {
          "Token": "a1b2c3d4e5",
          "i2p.router.version": "",
          "i2p.router.status": "",
          "i2p.router.net.status": "",
          "i2p.router.net.tunnels.participating": "",
          "i2p.router.net.bw.inbound.1s": "",
          "i2p.router.net.bw.outbound.1s": ""
        }
      }' \
  http://127.0.0.1:7657/jsonrpc/

İstek Örneği

Durum Kodu Enum (i2p.router.net.status)

AnahtarTürAçıklama
i2p.router.statusDizeSerbest biçimli, görüntülenmek üzere çevrilmiş yönlendirici durumu.
i2p.router.uptimelongYönlendiricinin çalışma süresi, milisaniye cinsinden. Eski i2pd sürümleri dize döndürebilir.
i2p.router.versionDizeTam yönlendirici sürümü.
i2p.router.net.statuslongAğ durum kodu; aşağıdaki tabloya bakın.
i2p.router.net.bw.inbound.1sdoubleGeçerli gelen bant genişliği, saniye başına bayt cinsinden.
i2p.router.net.bw.inbound.15sdouble15 saniyelik ortalama gelen bant genişliği, saniye başına bayt cinsinden.
i2p.router.net.bw.outbound.1sdoubleGeçerli giden bant genişliği, saniye başına bayt cinsinden.
i2p.router.net.bw.outbound.15sdouble15 saniyelik ortalama giden bant genişliği, saniye başına bayt cinsinden.
i2p.router.net.tunnels.participatinglongBu yönlendiricinin katıldığı tünel sayısı.

Durum Kodu Numarası (i2p.router.net.status)

KodAnlamı
0TAMAM
1TEST EDİLİYOR
2GÜVENLIK_DUVARI_ARKASINDA
3GIZLI
4UYARI_GÜVENLIK_DUVARI_ARKASINDA_VE_HIZLI
5UYARI_GÜVENLIK_DUVARI_ARKASINDA_VE_FLOODFILL
6UYARI_GÜVENLIK_DUVARI_ARKASINDA_VE_ICERI_TCP_VAR
7UYARI_GÜVENLIK_DUVARI_ARKASINDA_VE_UDP_DEVREDISIZ
8HATA_I2CP
9HATA_SAAT_UYUSUZLUGU
10HATA_OZEL_TCP_ADRESI
11HATA_SEMETRIK_NAT
12HATA_UDP_PORTU_KULLANILIOR
13HATA_ETKIN_KISI_YOK_LUTFEN_BAGLANTIYI_VE_GUVENLIK_DUVARINI_KONTROL_ET
14HATA_UDP_DEVRE_DISI_VE_TCP_AYARLANMAMIS

NetDB ve Eş Alanları

AnahtarTürAçıklama
i2p.router.netdb.knownpeerslongYerel yönlendirici hariç bilinen eşlerin sayısı.
i2p.router.netdb.activepeerslongAktif eşlerin sayısı.
i2p.router.netdb.fastpeerslongHızlı olarak sınıflandırılan eşlerin sayısı.
i2p.router.netdb.highcapacitypeerslongYüksek kapasiteli olarak sınıflandırılan eşlerin sayısı.
i2p.router.netdb.isreseedingbooleanYeniden tohumlama işlemi devam ediyor mu.
Yanıt Alanları (result) Resmi dokümanlara göre (GetI2P): - i2p.router.status (String) — insan tarafından okunabilir durum - i2p.router.uptime (long) — milisaniye (veya eski i2pd için string) :contentReference[oaicite:0]{index=0} - i2p.router.version (String) — sürüm dizesi :contentReference[oaicite:1]{index=1} - i2p.router.net.bw.inbound.1s, i2p.router.net.bw.inbound.15s (double) — gelen bant genişliği B/s cinsinden :contentReference[oaicite:2]{index=2} - i2p.router.net.bw.outbound.1s, i2p.router.net.bw.outbound.15s (double) — giden bant genişliği B/s cinsinden :contentReference[oaicite:3]{index=3} - i2p.router.net.status (long) — sayısal durum kodu (aşağıdaki enum’a bakın) :contentReference[oaicite:4]{index=4} - i2p.router.net.tunnels.participating (long) — katılan tunnel sayısı :contentReference[oaicite:5]{index=5} - i2p.router.netdb.activepeers, fastpeers, highcapacitypeers (long) — netDB peer istatistikleri :contentReference[oaicite:6]{index=6} - i2p.router.netdb.isreseeding (boolean) — reseed’in aktif olup olmadığı :contentReference[oaicite:7]{index=7} - i2p.router.netdb.knownpeers (long) — toplam bilinen peer’lar :contentReference[oaicite:8]{index=8}

4.2 GetRate


ParametreTürAçıklama
StatDizeYönlendirici RateStat adı.
PerioduzunHız periyodu milisaniye cinsinden.
Belirli bir zaman penceresi boyunca oran metriklerini (örneğin bant genişliği, tunnel başarı oranı) almak için kullanılır.
curl -s -H "Content-Type: application/json" \
  -d '{
        "jsonrpc": "2.0",
        "id": "3",
        "method": "GetRate",
        "params": {
          "Token": "a1b2c3d4e5",
          "Stat": "bw.combined",
          "Period": 60000
        }
      }' \
  http://127.0.0.1:7657/jsonrpc/

İstek Örneği

{
  "jsonrpc": "2.0",
  "id": "3",
  "result": {
    "Result": 12345.67
  }
}

Örnek Yanıt

4.3 RouterManager


ParametreSonuçAçıklama
RestartnullHemen yönlendiriciyi yeniden başlatır.
RestartGracefulnullKatılılan tünellerin süresi dolduktan sonra yeniden başlatır.
ShutdownnullHemen yönlendiriciyi kapatır.
ShutdownGracefulnullKatılılan tünellerin süresi dolduktan sonra kapatır.
ReseednullYönlendiriciyi yeniden başlatır.
FindUpdatesboolean veya StringEngelleme. İmzalı yönlendirici güncellemesi arar.
UpdateStringEngelleme. İmzalı yönlendirici güncellemesini başlatır ve son durumunu döndürür.
Yönetimsel işlemler gerçekleştirin.
curl -s -H "Content-Type: application/json" \
  -d '{
        "jsonrpc": "2.0",
        "id": "4",
        "method": "RouterManager",
        "params": {
          "Token": "a1b2c3d4e5",
          "Restart": true
        }
      }' \
  http://127.0.0.1:7657/jsonrpc/

İzin verilen parametreler / yöntemler - Restart, RestartGraceful - Shutdown, ShutdownGraceful - Reseed, FindUpdates, Update :contentReference[oaicite:10]{index=10}

{
  "jsonrpc": "2.0",
  "id": "4",
  "result": {
    "Restart": null
  }
}

İstek Örneği

4.4 NetworkSetting

Başarılı Yanıt


AnahtarKabul Edilen DeğerAçıklama
i2p.router.net.ntcp.portDize, 1–65535NTCP portu; değişiklik yapmak için yeniden başlatma gerekir.
i2p.router.net.ntcp.hostnameDizeNTCP ana bilgisayar adı; değişiklik yapmak için yeniden başlatma gerekir.
i2p.router.net.ntcp.autoipalways, true veya falseNTCP otomatik adres seçimi.
i2p.router.net.ssu.portDize, 1–65535SSU portu; değişiklik yapmak için yeniden başlatma gerekir.
i2p.router.net.ssu.hostnameDizeSSU dış ana bilgisayar adı; değişiklik yapmak için yeniden başlatma gerekir.
i2p.router.net.ssu.autoipssu, local,ssu, upnp,ssu veya local,upnp,ssuSSU adres keşfi kaynakları.
i2p.router.net.ssu.detectedipnullSalt okunur, tespit edilen SSU adresi.
i2p.router.net.upnpDizeUPnP ayarı.
i2p.router.net.bw.shareDize, 0–100Katılım tüneleri için kullanılabilir bant genişliğinin yüzdesi.
i2p.router.net.bw.inNegatif olmayan tamsayı dizesiGelen bant genişliği sınırı KiB/s cinsinden.
i2p.router.net.bw.outNegatif olmayan tamsayı dizesiGiden bant genişliği sınırı KiB/s cinsinden.
i2p.router.net.laptopmodeDizeDizüstü mod ayarı.
Ağ yapılandırma parametrelerini al veya ayarla (portlar, upnp, bant genişliği paylaşımı, vb.)
curl -s -H "Content-Type: application/json" \
  -d '{
        "jsonrpc": "2.0",
        "id": "5",
        "method": "NetworkSetting",
        "params": {
          "Token": "a1b2c3d4e5",
          "i2p.router.net.ntcp.port": null,
          "i2p.router.net.ssu.port": null,
          "i2p.router.net.bw.share": null,
          "i2p.router.net.upnp": null
        }
      }' \
  http://127.0.0.1:7657/jsonrpc/

İstek Örneği (mevcut değerleri al)

{
  "jsonrpc": "2.0",
  "id": "5",
  "result": {
    "i2p.router.net.ntcp.port": "1234",
    "i2p.router.net.ssu.port": "5678",
    "i2p.router.net.bw.share": "50",
    "i2p.router.net.upnp": "true",
    "SettingsSaved": false,
    "RestartNeeded": false
  }
}

Örnek Yanıt

Not: 2.41’den önceki i2pd sürümleri string yerine sayısal türler döndürebilir — istemciler her ikisini de işleyebilmelidir. :contentReference[oaicite:11]{index=11}

4.5 Gelişmiş Ayarlar


ParametreTürAçıklama
getDizeBir get sonuç nesnesi içinde tek bir ayar döndürür.
getAllyokgetAll içinde tam yapılandırma haritasını döndürür.
setHarita<Dize, Dize>Diğer anahtarları kaldırmadan verilen ayarları günceller.
setAllHarita<Dize, Dize>Yıkıcı: tüm ayarların yerini alır ve verilmeyen anahtarları siler.
İç router parametrelerini düzenlemeye izin verir.

İstek Örneği

curl -s -H "Content-Type: application/json" \
  -d '{
        "jsonrpc": "2.0",
        "id": "6",
        "method": "AdvancedSettings",
        "params": {
          "Token": "a1b2c3d4e5",
          "set": {
            "router.sharePercentage": "75",
            "i2np.flushInterval": "6000"
          }
        }
      }' \
  http://127.0.0.1:7657/jsonrpc/

Yanıt Örneği

{
  "jsonrpc": "2.0",
  "id": "6",
  "result": {}
}

Standart JSON-RPC2 Hata Kodları


ParametreTürAçıklama
EchoDizeResult olarak döndürülen değer.
{
  "jsonrpc": "2.0",
  "id": "7",
  "method": "Echo",
  "params": {
    "Token": "a1b2c3d4e5",
    "Echo": "hello"
  }
}
{
  "jsonrpc": "2.0",
  "id": "7",
  "result": {
    "Result": "hello"
  }
}

I2PControl Özel Hata Kodları

I2PControl’ü kendisi yönetir. Mevcut Java işleyicisi şifre değişikliklerini destekler.

ParametreTipAçıklama
i2pcontrol.passwordDizeYeni bir I2PControl şifresi ayarlar ve mevcut kimlik doğrulama tokenlarını iptal eder.
Sonuç SettingsSaved değerini içerir. Şifre değiştirildiyse, sonuç ayrıca "i2pcontrol.password": null değerini de içerir. Eski tek başına eklentinin dinleme-adresi ve dinleme-bağlantı noktası ayarları, mevcut Java işleyicisinde etkin değildir.

Varsayılan şifre: itoopie — bu fabrika varsayılanıdır ve güvenlik için hemen değiştirilmelidir.

5. Hata Kodları

Standart JSON-RPC2 Hata Kodları

KodAnlamı
-32700JSON çözümleme hatası
-32600Geçersiz istek
-32601Yöntem bulunamadı
-32602Geçersiz parametreler
-32603Dahili hata

I2PControl’a Özel Hata Kodları

KodAnlamı
-32001Geçersiz parola sağlandı
-32002Kimlik doğrulama belirteci sunulmadı
-32003Kimlik doğrulama belirteci mevcut değil
-32004Sağlanan kimlik doğrulama belirtecinin süresi dolmuş ve kaldırılacaktır
-32005Kullanılan I2PControl API sürümü belirtilmedi, ancak belirtilmesi gerekiyor
-32006Belirtilen I2PControl API sürümü I2PControl tarafından desteklenmiyor

Varsayılan şifre: itoopie — bu fabrika varsayılanıdır ve güvenlik için hemen değiştirilmelidir.

6. Kullanım ve En İyi Uygulamalar

  • Her zaman Token parametresini dahil edin (kimlik doğrulama yaparken hariç).
  • İlk kullanımda varsayılan parolayı (itoopie) değiştirin.
  • Java I2P için, I2PControl webapp’inin WebApps aracılığıyla etkinleştirildiğinden emin olun.
  • Küçük farklılıklara hazır olun: bazı alanlar I2P sürümüne bağlı olarak sayı veya metin olabilir.
  • Uzun durum metinlerini görüntü dostu çıktı için sarın.

Varsayılan şifre: itoopie — bu fabrika varsayılanıdır ve güvenlik için hemen değiştirilmelidir.

Was this page helpful?