Stefan Welscher: Zeichenkette in gesamtem "Quelltext" ersetzen

Beitrag lesen

Moin moin,
folgendes Problem beschäftigt mich gerade:
Ich habe von der Firma einen SSH-Zugang zur Fernwartung eines Servers bekommen. Da ich über den Zugang tatsächlich nur SSH drüber bekomme möchte ich eine Möglichkeit haben, das HTTP-Webinterface über SSH zu tunneln.

Ich habe mein Putty dafür so eingerichtet, dass es alle Pakete, die localhost auf Port 80 bekommt auf die SSH-Session schiebt, soweit so gut. Wenn ich localhost im Browser eingebe komme ich jetzt auf die Startseite des Servers.
Ein Problem habe ich allerdings mit Webanwendungen wie phpMyAdmin, bei denen die Server-IP fest hinterlegt ist. Diese muss irgendwie doch localhost ersetzt werden. Eine kostenfreie NAT-Software für Windows 7 (mein Client) konnte ich bisher nicht finden, also habe ich mal versucht ein Greasemonkey-Script zu erstellen, welches die IP durch localhost ersetzt:

  
// ==UserScript==  
// @name         HTTP Tunnel Redirect-Script  
// @version      0.1  
// @namespace    *  
// @include	     http://localhost*  
// ==/UserScript==  
  
var replace_ip = '1.1.1.1';  
var replace_with = 'localhost';  
  
//Parse links  
var allLinks, thisLink;  
allLinks = document.evaluate(  
    '//a[@href] | //base[@href] | //link[@href]',  
    document,  
    null,  
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,  
    null);  
	  
for (var i = 0; i < allLinks.snapshotLength; i++)  
{  
		thisLink = allLinks.snapshotItem(i);  
		if (thisLink.href.match(replace_ip))  
		{	thisLink.href = thisLink.href.replace(replace_ip, replace_with); }  
}  
  
//Parse images  
var allImgs, thisImg;  
allImgs = document.evaluate(  
    '//img',  
    document,  
    null,  
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,  
    null);  
  
for (var i = 0; i < allImgs.snapshotLength; i++)  
{  
		thisImg = allImgs.snapshotItem(i);  
		if (thisImg.src.match(replace_ip))  
		{	thisImg.src = thisImg.src.replace(replace_ip, replace_with); }  
}  
  
//Parse forms  
var allImgs, thisImg;  
allImgs = document.evaluate(  
    '//form[@action]',  
    document,  
    null,  
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,  
    null);  
  
for (var i = 0; i < allImgs.snapshotLength; i++)  
{  
		thisImg = allImgs.snapshotItem(i);  
		if (thisImg.action.match(replace_ip))  
		{	thisImg.action = thisImg.action.replace(replace_ip, replace_with); }  
}  

Im großen und ganzen läuft das schon, aber an einigen Stellen ist die IP noch in JavaScript-Redirects oder ähnlichem hinterlegt und es kommt noch zu Fehlern. Gibt es eine Möglichkeit Suchen und Ersetzen über die gesamte Website durchzuführen um wirklich jeden Eintrag zu erschlagen, oder wie könnte ich die JS-Sachen mit erschlagen?

Danke schonmal!