Hello folks,
Someone can tell me how to get the client ip of a connected session from the server side?.
Thanks
Hello folks,
Someone can tell me how to get the client ip of a connected session from the server side?.
Thanks
You query the Request.RemoteAddr
to get the ip address of the attached client.
procedure TMyDSService.DataSnapServerConnect(DSConnectEventObject: TDSConnectEventObject);
var
Conn: TIdTCPConnection;
begin
Conn := TIdTCPConnection(DSConnectEventObject.ChannelInfo.Id);
Trace('Client ' + Conn.Socket.Binding.PeerIP +':' + IntToStr(Conn.Socket.Binding.PeerPort));
Trace('Client info: ' + DSConnectEventObject.ChannelInfo.Info);
end;
procedure TMyDSService.DataSnapServerConnect(DSConnectEventObject: TDSConnectEventObject);
var
Conn: TIdTCPConnection;
begin
Conn := TIdTCPConnection(DSConnectEventObject.ChannelInfo.Id);
Trace('Client ' + Conn.Socket.Binding.PeerIP +':' + IntToStr(Conn.Socket.Binding.PeerPort));
Trace('Client info: ' + DSConnectEventObject.ChannelInfo.Info);
end;
This solution does not work if the connection is made using HTTP Transport.
Does anyone know how to get the client ip address when the client is using HTTP Transport protocol?