Serveur STUN

Fais tourner ton propre serveur STUN (RFC 8489) en Delphi. Réponds aux requêtes Binding avec la réponse canonique XOR-MAPPED-ADDRESS — utile dans les réseaux privés, les déploiements sur site et l'amorçage ICE.

TsgcSTUNServer

Un serveur STUN typé conforme à la RFC 8489 — traite les messages Binding / Indication, répond avec XOR-MAPPED-ADDRESS, applique en option MESSAGE-INTEGRITY pour l'authentification longue durée.

Classe du composant

TsgcSTUNServer

Protocole

STUN (RFC 8489)

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Enterprise

Pose, configure le port, tu as un endpoint STUN

Configure Port (par défaut 3478), Active := True — ton serveur répond désormais aux requêtes Binding avec la réponse canonique XOR-MAPPED-ADDRESS de la RFC 8489.

uses
  sgcP2P;

var
  STUNServer: TsgcSTUNServer;
begin
  STUNServer := TsgcSTUNServer.Create(nil);
  STUNServer.Port := 3478;

  // optional: long-term credentials
  STUNServer.Authentication.Enabled  := True;
  STUNServer.Authentication.Realm    := 'example.com';
  STUNServer.OnSTUNAuthenticate := procedure(Sender: TObject;
    const aUsername: string; var aPassword: string;
    var Accept: Boolean)
  begin
    aPassword := LookupPassword(aUsername);
    Accept    := aPassword <> '';
  end;

  STUNServer.Active := True;
end;
// uses: sgcP2P
TsgcSTUNServer *STUNServer = new TsgcSTUNServer(this);
STUNServer->Port = 3478;
STUNServer->Active = true;

Sous le capot

Un serveur STUN auto-hébergé — idéal pour les déploiements WebRTC sur site et les tests en cloud privé.

Gestionnaire de requêtes Binding

Les requêtes Binding entrantes reçoivent une réponse avec XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (legacy) et FINGERPRINT — conforme au format de réponse standard de la RFC 8489.

Authentification longue / courte durée

Active Authentication.Enabled pour exiger MESSAGE-INTEGRITY. OnSTUNAuthenticate expose le nom d'utilisateur de la requête pour que tu renvoies le mot de passe correspondant depuis ton stockage.

Limite de débit par IP

Combine avec TsgcWSRateLimiter pour limiter les requêtes STUN entrantes par IP source — protection utile contre les abus d'amplification.

IPv4 / IPv6

Lie-toi à l'une ou l'autre famille, ou en double pile via IPVersion. La réponse XOR-MAPPED-ADDRESS utilise la famille du transport entrant.

TLS sur TCP (RFC 8489 §5)

Pour la variante STUN-over-TLS, configure l'écouteur TCP sous-jacent avec les options SSL — utile quand UDP est bloqué en sortie réseau.

Diagnostics

OnSTUNRequest / OnSTUNResponse journalisent chaque transaction, y compris Method, MessageType et la liste d'attributs analysés — idéal pour déboguer les déploiements.

Spécifications et références

Sources de référence pour le protocole implémenté par ce composant.

Documentation et démos

Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.

Aide en ligne — TsgcSTUNServer Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — Demos\35.P2P\02.STUN Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous.
Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement.
Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque.

Prêt à faire tourner ton propre serveur STUN ?

Télécharge l'essai gratuit et déploie un endpoint STUN en Delphi.