gpt4 book ai didi

web-services - 在 RemObjects Web 服务中获取客户端 IP 地址

转载 作者:行者123 更新时间:2023-12-03 15:12:19 25 4
gpt4 key购买 nike

我有一个使用 RemObjects 通过 Delphi XE 实现的 Web 服务,我想知道客户端请求的 IP 地址。我的服务继承自TRORemoteDataModule我还没有找到任何方法或对象来做到这一点。

有什么建议吗?谢谢

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

最佳答案

这是我从 SuperChannel 获取它的方式:

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;

使用它做什么的具体细节取决于您,但是您必须在设置时获取它,如果您想稍后再获取它,请将其存储在 session 对象中。我实现了一个自定义 session 来保存客户端 Ip,以便我可以在进一步的调用中随时获取它。

关于web-services - 在 RemObjects Web 服务中获取客户端 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10277003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com