Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

quinta-feira, 8 de junho de 2017

DELPHI - Pegando o ip do Cliente em um método do ServerMethods - Get client ip on Delphi Rest ServerMethods (testado em Delphi Tokyo 10.2)

Reações: 
Muitas horas depois, segue um exemplo facil:

//uses Datasnap.DSSession
unit ServerMethods ... 
function TServerMethods1.ReverseString(Value: string): string;
var
  ADSSession   : TDSSession;
begin

  ADSSession   := TDSSessionManager.GetThreadSession; // pega a seção criada no momento da conexão

  Result := System.StrUtils.ReverseString(Value); // Função ReverseString, que já vem no exemplo do delphi


  TForm1.AddLog( // coloquei um memo na tela do servidor pra ver o que ia acontecendo

  '[ReverseString.Id=' + Value + '] ' +  '[ReverseString.Result=' + Result + '] '); // valor revertido, pra saber se era do mesmo cliente que eu estava tentando processar, testei com 2 clients diferentes

  TForm1.AddLog(slinebreak +
  '[AProtocol=' + ADSSession.GetData('CommunicationProtocol') + '] ' + slinebreak + // retorna a string: "HTTP/1.1"
  '[AIpAddress=' + ADSSession.GetData('RemoteIP') + '] ' + slinebreak + //retorna o ip do cliente "10.10.0.123"
  '[AAppName=' + ADSSession.GetData('RemoteAppName') + '] ' + slinebreak + // no meu caso retornou: "Embarcadero URI Client/1.0" não entendi o porque
  '[ADSSession.UserRoles.Text=' + ADSSession.UserRoles.Text + '] ' + slinebreak + // retornou ""

  '[ADSSession.SessionName=' + ADSSession.SessionName + '] ' + retornou a seção registrada naquele momento "700417.20882.584746");

end;

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Max Gehringer