我正在使用tidhttpproxyserver实现一个简单的HTTP代理,但是如果它们匹配某些URL,我现在想阻止某些连接。哪个事件和/或组件最好实现这一目标? Indy文档不太阐明。 :(

谢谢!

有帮助吗?

解决方案

作为基本过滤器,您可以使用Onhttpbeforecommand事件处理程序(在命令发送到HTTP服务器之前发射)。

检查上下文参数属性,您会发现有用:

Context.Command
Context.OutboundClient.Host
Context.OutboundClient.Port
Context.Document
Context.Headers

我目前从未尝试过停止梭子,但是我敢打赌,如果您确定有块规则匹配,您可以通过在此时提出例外来做到这一点。

其他提示

该组件具有“连接”事件,双击它并添加此代码:

if AContext.Connection.Socket.Binding.PeerIP = '127.0.0.1' then
  AContext.Connection.Disconnect;

用过滤器替换127.0.0.1,这只是一个“极为基本的示例”,也适用于具有“连接”事件的其他Indy服务器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top