gpt4 book ai didi

Delphi XE5 Rest Datasnap 服务器。获取客户端IP地址

转载 作者:行者123 更新时间:2023-12-03 06:12:32 24 4
gpt4 key购买 nike

我尝试使用 DSServeronconnect 事件以及以下代码来获取客户端的 IP 地址和其他客户端信息。

我的问题是,DSConnectEventObject.ChannelInfo 每次都是nil。此外,我无法解析 IP 地址。

请帮助我。谢谢。

procedure TWebModule1.DSServer1Connect(DSConnectEventObject: TDSConnectEventObject);
var
ci: TDBXClientInfo;
begin
ci := DSConnectEventObject.ChannelInfo.ClientInfo;
AddLog(Format('Client %s Connected IP: %s, Port: %s',
[ci.Protocol, ci.IpAddress, ci.ClientPort])
);
end;

最佳答案

如前所述,这是 DataSnap 中的一个错误。它在 XE2 中工作正常,但错误出现在 XE3 和 XE5 之间的某个地方。 QC 报告#121931 和#126164 中已对此进行了报道。幸运的是,客户端连接属性在 Session 对象中可用 - 见下文:

var
Session: TDSSession;
Protocol, IpAddress, AppName: string;
begin
Session := TDSSessionManager.GetThreadSession;
Protocol := Session.GetData('CommunicationProtocol');
IpAddress := Session.GetData('RemoteIP');
AppName := Session.GetData('RemoteAppName');
end;

关于Delphi XE5 Rest Datasnap 服务器。获取客户端IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19299308/

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