Форум сайта python.su
Вариант использовать что-то типа safesquid не подходит - мне не для использования, а для демонстрационного проекта. Все равно спасибо.
Офлайн
Вот написал на коленке
from paste.proxy import TransparentProxy
from webob import Request
from webob.exc import HTTPForbidden
class SimpleProxy(object):
def __init__(self, proxy):
self.proxy = proxy
def do_proxy(self, req, environ, start_response):
req.remove_conditional_headers()
resp = req.get_response(self.proxy)
resp.decode_content()
return resp
def __call__(self, environ, start_response):
req = Request(environ)
resp = self.do_proxy(req, environ, start_response)
return resp(environ, start_response)
class XXXProxy(SimpleProxy):
def do_proxy(self, req, environ, start_response):
resp = super(XXXProxy, self).do_proxy(req, environ, start_response)
if not self.valid(resp.body):
return HTTPForbidden()
return resp
def valid(self, body):
return not 'xxx' in body
def main():
app = XXXProxy(TransparentProxy())
from paste.httpserver import serve
serve(app, 'localhost', 3127)
if __name__ == '__main__':
main()
Офлайн
Огромнейшее человеческое спасибо, разобрался.
Офлайн
zheromo, а можно так сделать вот что http://python.su/forum/viewtopic.php?id=8901 ?
akolesnikov, и как успехи с ловлей пакетов? TCP reassembling делать уже научился (хотя для заголовков это не очень принципиально)?
Офлайн
Я перешел к работе с прокси. Удобнее и проще.
Офлайн
А по http://python.su/forum/viewtopic.php?id=8901 идеи есть? Как ты проки делал - готовый брал, или свой майстрячил?
>Я перешел к работе с прокси. Удобнее и проще.
Ясен фиг :) Иначе по понятиям надо корректно реализовать обработку ip/tcp.
Офлайн
Использую пример zheromo, все устраивает.
Офлайн
А тебе просто логить надо было, или перехватывать / модифицировать?
Офлайн
Модифицировать не надо, просто выявлять.
Офлайн
Мне модифицировать надо. Будет работать?
Офлайн