Pregunta

Estoy usando un TIdHTTPProxyServer para implementar un simple proxy HTTP, pero me gustaría ahora al bloque algunas conexiones si coinciden con determinadas direcciones URL. ¿Qué evento y / o componente es la mejor manera de lograr eso? documentación Indy no es demasiado explicativo. : (

Gracias!

¿Fue útil?

Solución

Como filtro básico se puede utilizar el controlador de eventos OnHTTPBeforeCommand (que los incendios antes de que el comando se envía al servidor HTTP).

Inspeccionar las propiedades de parámetro Contexto, encontrará útil:

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

Nunca trató de detener la PassTrough en este momento, pero estoy seguro que puede hacerlo con sólo lanzar una excepción en ese punto a determinar si hay un partido de regla de bloqueo.

Otros consejos

el componente tiene un suceso de "OnConnect", haga doble clic en él y añadir este código:

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

reemplazar 127.0.0.1 con su filtro, esto es sólo un "ejemplo muy básico", mismo se aplica a otros servidores de Indy que tienen un evento "OnConnect".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top