I'm trying to create a simple web filtering app in python. The way I want to do this is to monitor traffic on ports tcp 80/443 (http) and if there is traffic, I want to check something before I let it go through. If it fails the check, I would like for the user to be redirected to a page of my choosing.
So my question is, when the user visits http://www.google.com in the browser, is there a way that I can intercept that request, and is there a way I can redirect them to another page by my choosing?
解决方案
You need to write a web proxy, and set your web clients proxy server to http://localhost:8000/ (or whatever the proxy is listening on).
Your web client will then send HTTP like this:
to your proxy which it must then rewrite as:
GET /
and send on to www.google.com, getting the response and then sending it back on the original socket to the client. Note that explanation is massively simplified.
Anyway, its all standard stuff and I suspect Python web proxies exist already for you to hack on.