Componente de servidor STUN para Delphi e C++ Builder | eSeGeCe

Servidor STUN

Execute seu próprio servidor STUN (RFC 8489) em Delphi. Responda requisições binding com a resposta canônica XOR-MAPPED-ADDRESS — útil em redes privadas, implantações on-premise e bootstrapping de ICE.

TsgcSTUNServer

Um servidor STUN RFC 8489 tipado — processa mensagens Binding / Indication, responde com XOR-MAPPED-ADDRESS e, opcionalmente, aplica MESSAGE-INTEGRITY para autenticação de longo prazo.

Classe do componente

TsgcSTUNServer

Protocolo

STUN (RFC 8489)

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Enterprise

Solte, defina a porta e você tem um endpoint STUN

Defina Port (padrão 3478), Active := True — seu servidor já responde requisições Binding com a resposta canônica XOR-MAPPED-ADDRESS da RFC 8489.

uses
  sgcP2P;

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

  // opcional: credenciais de longo prazo
  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;
// usa: sgcP2P
TsgcSTUNServer *STUNServer = new TsgcSTUNServer(this);
STUNServer->Port = 3478;
STUNServer->Active = true;

O que tem por dentro

Um servidor STUN auto-hospedado — ideal para implantações WebRTC on-premise e testes em nuvem privada.

Handler de requisições Binding

Requisições Binding recebidas são respondidas com XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (legado) e FINGERPRINT — seguindo o formato padrão de resposta da RFC 8489.

Autenticação de longo / curto prazo

Alterne Authentication.Enabled para exigir MESSAGE-INTEGRITY. OnSTUNAuthenticate expõe o username da requisição para você retornar a senha correspondente do seu armazenamento.

Limite de taxa por IP

Combine com TsgcWSRateLimiter para limitar requisições STUN recebidas por IP de origem — proteção útil contra abuso de amplificação.

IPv4 / IPv6

Faça bind a qualquer família ou em pilha dupla via IPVersion. A resposta XOR-MAPPED-ADDRESS usa a família do transporte recebido.

TLS sobre TCP (RFC 8489 §5)

Para a variante STUN-sobre-TLS, configure o listener TCP subjacente com opções SSL — útil quando o UDP está bloqueado na saída da rede.

Diagnóstico

OnSTUNRequest / OnSTUNResponse registram cada transação, incluindo Method, MessageType e a lista de atributos analisados — ótimo para depurar implantações.

Especificações & referências

Fontes oficiais do protocolo que este componente implementa.

Documentação & Demos

Acesse a referência do componente, pegue o projeto demo pronto para executar e baixe a versão de avaliação.

Ajuda online — TsgcSTUNServer Referência completa de propriedades, métodos e eventos deste componente.
Projeto demo — Demos\35.P2P\02.STUN Exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo.
Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente deste componente.
Manual do usuário (PDF) Manual completo cobrindo todos os componentes da biblioteca.

Perguntas frequentes sobre o servidor STUN

Dúvidas comuns sobre executar um servidor STUN auto-hospedado em Delphi e C++ Builder.

Coloque um componente TsgcSTUNServer, defina Port (padrão 3478) e defina Active := True. O servidor então responde às requisições Binding de entrada com a resposta canônica XOR-MAPPED-ADDRESS. Opcionalmente, habilite Authentication e trate OnSTUNAuthenticate para exigir MESSAGE-INTEGRITY com credenciais de longo prazo.
Ele implementa STUN conforme a RFC 8489, processando mensagens Binding e Indication e respondendo com XOR-MAPPED-ADDRESS, o legado MAPPED-ADDRESS e FINGERPRINT. Ele suporta IPv4 e IPv6, STUN-over-TLS opcional e referencia a RFC 5780 para descoberta de comportamento de NAT.
Não. TsgcSTUNServer é um servidor STUN auto-hospedado que você incorpora diretamente no seu próprio aplicativo Delphi ou C++ Builder, de modo que você não precisa implantar e operar uma instância coturn separada. É ideal para redes privadas, implantações WebRTC on-premise e bootstrapping de ICE sob o seu próprio controle.
O servidor STUN faz parte da edição Enterprise do sgcWebSockets e suporta do Delphi 7 até o mais recente lançamento do Delphi e as versões correspondentes do C++ Builder, no Windows, macOS, Linux, iOS e Android. Baixe a versão de avaliação gratuita para colocar de pé um endpoint STUN no seu próprio projeto.

Pronto para executar seu próprio servidor STUN?

Baixe a versão de avaliação e suba um endpoint STUN em Delphi.