Composant serveur STUN pour Delphi & C++ Builder | eSeGeCe

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.

Questions fréquentes sur le serveur STUN

Questions courantes sur l'exécution d'un serveur STUN auto-hébergé en Delphi et C++ Builder.

Déposez un composant TsgcSTUNServer, définissez Port (par défaut 3478) et réglez Active := True. Le serveur répond alors aux requêtes Binding entrantes avec la réponse XOR-MAPPED-ADDRESS canonique. Activez éventuellement Authentication et gérez OnSTUNAuthenticate pour exiger MESSAGE-INTEGRITY avec des identifiants à long terme.
Il implémente STUN selon le RFC 8489, traitant les messages Binding et Indication et répondant avec XOR-MAPPED-ADDRESS, l'ancien MAPPED-ADDRESS et FINGERPRINT. Il prend en charge IPv4 et IPv6, STUN-over-TLS optionnel, et se réfère au RFC 5780 pour la découverte du comportement du NAT.
Non. TsgcSTUNServer est un serveur STUN auto-hébergé que vous intégrez directement dans votre propre application Delphi ou C++ Builder, vous n'avez donc pas besoin de déployer et d'exploiter une instance coturn séparée. Il est idéal pour les réseaux privés, les déploiements WebRTC sur site et l'amorçage ICE sous votre propre contrôle.
Le serveur STUN fait partie de l'édition sgcWebSockets Enterprise et prend en charge Delphi 7 jusqu'à la dernière version de Delphi et les versions de C++ Builder correspondantes, sous Windows, macOS, Linux, iOS et Android. Téléchargez la version d'essai gratuite pour mettre en place un endpoint STUN dans votre propre projet.

Prêt à faire tourner ton propre serveur STUN ?

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