在 TidHTTPServer 中阻止传入 IP

Block incoming IPs in TidHTTPServer

我想阻止某些客户端 "OnConnect" 访问我的服务器,但我不确定最好使用哪个事件以及如何找到远程 IP...

在您的应用代码中,使用 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