Potrebbero esserci alcuni prodotti che sono in grado di farlo, ma io stesso ho scritto un proxy simile dove volevo servire contenuti locali piuttosto che remoti per alcuni uri.
Ecco una modifica del mio codice scritto in python. Si basa sulla libreria ritorta, quindi potresti volerlo scaricare da qui .
Corrisponde agli URL con la parte netloc uguale a "security.stackexchange.com" e la sostituisce con "www.xkcd.org".
Spero che tu abbia familiarità con Python, quindi puoi aggiungere più funzionalità in questo codice. Dovrebbe essere facile aggiungere logging, riscrivere dinamicamente uri e così via.
Inoltre, se vuoi modificare il contenuto in transito dal malware e dal C & C, dai un'occhiata al mio contributo per un proxy di riscrittura dei contenuti: link
from twisted.web import proxy, http
from twisted.internet import reactor
from urlparse import urlparse, urlunparse
fakeweb_netloc = "www.xkcd.org"
cc_netloc = "security.stackexchange.com"
class ProxyRequest(proxy.ProxyRequest):
def process(self):
res = urlparse(self.uri)
netloc = res.netloc
print self.uri
if netloc == cc_netloc:
netloc = fakeweb_netloc
self.uri = urlunparse((res.scheme, netloc, res.path, res.params, res.query, res.fragment))
proxy.ProxyRequest.process(self)
class MyProxy(http.HTTPChannel):
requestFactory = ProxyRequest
class ProxyFactory(http.HTTPFactory):
protocol = MyProxy
if __name__ == "__main__":
factory = ProxyFactory()
reactor.listenTCP(8080,factory)
reactor.run()