【问题标题】:How to get the client IP in DataSnap 2010如何在 DataSnap 2010 中获取客户端 IP
【发布时间】:2010-01-29 18:25:23
【问题描述】:

有人可以告诉我如何从服务器端获取已连接会话的客户端 ip?

谢谢

【问题讨论】:

    标签: delphi delphi-2010 datasnap


    【解决方案1】:
    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;
    

    【讨论】:

    • DSConnectEventObject.ChannelInfo.Info 总是返回服务器的 IP 地址,这是一个错误还是我错过了什么? db.tt/lmRoqD2
    【解决方案2】:

    您查询Request.RemoteAddr 以获取附加客户端的IP 地址。

    【讨论】:

    • RemoteAddr 是 TWebRequest 的一种方法,我认为在 Datasnap 中无法访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2016-10-07
    • 2015-06-06
    相关资源
    最近更新 更多