【发布时间】:2020-05-19 10:25:48
【问题描述】:
我想阻止某些客户端“OnConnect”连接到我的服务器,但我不确定哪个事件最适合使用以及如何找到远程 IP...
【问题讨论】:
标签: indy delphi-10.3-rio
我想阻止某些客户端“OnConnect”连接到我的服务器,但我不确定哪个事件最适合使用以及如何找到远程 IP...
【问题讨论】:
标签: indy delphi-10.3-rio
在您的应用代码中,使用OnConnect 事件是最简单的选择。您可以从提供的AContext 参数的Binding.PeerIP 属性中获取客户端的IP,例如:
procedure TMyForm.IdHTTPServer1Connect(AContext: TIdContext);
begin
if (AContext.Binding.PeerIP is blacklisted) then
AContext.Connection.Disconnect; // or raise an Exception...
end;
但是,更好的选择是将您的服务器应用程序放在防火墙后面,首先阻止所需 IP 的连接到达TIdHTTPServer。
【讨论】: