首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RemObjects Get服务中获取客户端ip地址

在RemObjects Get服务中获取客户端ip地址
EN

Stack Overflow用户
提问于 2012-04-23 16:11:43
回答 2查看 925关注 0票数 5

我有一个在Delphi上使用RemObjects实现的want服务,我想知道客户申请的ip地址。我的服务继承自TRORemoteDataModule,但我还没有找到任何方法或对象来做这件事。

有什么建议吗?谢谢

注意:我认为我需要的信息是在方法self.transport.GetTransportObject()中返回的,但它返回一个TObject,而我不知道如何提取该信息

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-23 16:56:13

下面是我从SuperChannel中获取它的方法:

代码语言:javascript
复制
procedure TMyInterface.RORemoteDataModuleGetDispatchInfo(const aTransport: IROTransport; const aMessage: IROMessage);
var
  tcpinfo: IROTCPTransport; 
  Session: TCustomSession;
  szClientIP : String;
begin
  Session := TCustomSession(Self.Session);
  if Supports(aTransport, IROTCPTransport, tcpinfo) then
  begin
    szClientIP := tcpinfo.ClientAddress;
    if (not Session.ShownTCP) or (Session.TCPAddress <> szClientIP) then
    begin
      Session.TCPAddress := szClientIP;
      Session.Report(leInformation, 'TCP address ' + szClientIP); 
      Session.ShownTCP := True; 
    end; 
  end 
  else 
  begin 
    Session.Report(leInformation, 'TCP address not available');
  end;
end;

如何处理它的细节由您决定,但您必须在设置时获取它,如果您想在以后使用它,则必须将其存储在会话对象中。我实现了一个自定义会话来保存客户端Ip,这样我就可以在进一步的调用中随时获取它。

票数 4
EN

Stack Overflow用户

发布于 2012-04-23 16:24:12

下面是如何做到这一点

http://wiki.remobjects.com/wiki/Server_FAQs_%28RemObjects_SDK%29#How_can_I_get_IP_address_of_the_remote_client.3F

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10277003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档