Netzwerk-Freigaben der Fritzbox per IPS steuern

Hallo brausepaul,

bei Dir wird für den Quell- und Zielport nur eine Zahl angezeigt, wenn es kein Adressbereich ist. Obwohl ich mir Dein Skript kopiert habe ist das bei mir anders…:confused:
Liegt es an der Fritz!Box Softwareversion?

Joachim

Noch ein Nachtrag:
Ich habe hier ein ganz komisches Verhalten. Manchmal funktioniert es, dann wieder nicht - keine Ahnung warum. Es sieht mir so aus, als wenn es irgendeinem Grund die Buttons nicht auf den Klick reagieren. Das „Schalten-Skript“ wird nach meinem Kenntnisstand dann überhaupt nicht gestartet…

Hallo JPaeper,

also das Script ips_runscriptwaitex.php hast du dir auch in dein UserVerzeichnis kopiert? Das wird ja dann fest in die Buttons verdrahtet. Ich hab die Fritz 7270v3 mit Firmware 74.05.22.

Nachtrag:
Ist mir gerade eingefallen ich habe die ips_runscriptwaitex.php direkt unter „user/ips_runscriptwaitex.php“. Im Originalscript ist es user/dojo/ips_runscriptwaitex.php. Also entweder die Datei verschieben oder das Script anpassen :wink:

Hallo Brausepaul,

vielen Dank für Deine Antwort…

Das mit den unterschiedlichen Pfaden hatte ich schon gesehen und angepasst. Das komische ist halt, dass es manchmal funktioniert - und dann wieder nicht mehr, leider bekomme ich auch keine Fehlermeldungen…

Joachim

Hallo,
nach Update auf neues Fritz!OS 5.50 funktioniert das ganze natürlich nicht mehr. Hat jemand das alles schon mit Fritz!OS 5.50 ans laufen bekommen?

Vielen Dank

Tobias

Hallo.
Habe auch auf 5.50 geupdatet. Geht auch mein Script nicht mehr. Muss mir das in den nächsten Tagen mal anschauen. Muss auch alle anderen Fritzbox-Scripte anpassen. Weis jemand, ob „nur“ das Login geändert wurde?

Ich glaube es wurde mehr geändert. Hier die entscheidende Skript-Zeile, mit der ich meine erste Freigabe (rule0) schalte:

curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&forwardrules:settings/rule0/activated={$wert}");

Grüße
galleto

Hallo zusammen,
habe diese Funktionalität bis vor kurzem lange nicht mehr benötigt und erst jetzt bemerkt, dass die „Buttons“ Aktivieren und Deaktivieren nicht mehr funktionieren. Die FB hat sich nicht verändert, sprich kein Update auf 5.5.
Was ich gemaht habe ist ein IPS-Update auf 3.0.
Der IPS-Logger gibt nix aus.
Hat jemand eine Lösung dazu?

OT: Andere http-Funktionen z.B. die Display-Tastatur zum Ändern der Limits im IPS-Twillight-Script von Brownson funktioniert auch nicht mehr.

Hab ich da was in den Änderungen zu 3.0 verpasst?

Habe mittlerweile einen anderen Ansatz gefunden und somit mein Script für die Console aktualisiert: http://www.ip-symcon.de/forum/threads/23236-Funktionierende-Scripts-für-FritzOS-6-0-7390?p=212718#post212718 Zumindest sind die Daten erstmal da.

@wolfgang: guckst du hier

EDIT: Erweiterung für HTML - vorerst ohne Button zum Umschalten. String-Variable anlegen mit Profil ~html-Box und ID im Script anpassen.

 <?

include "fritzboxlogin.php"; // Fritzbox-Login - IPS-ID 37048
IPS_SetHidden($_IPS['SELF'], true);

// -----------------------------------------------------------------------------

// String-Variable mit Profil ~html-Box
$html = 34765 /*[EDV\Fritzbox\Freigaben\Freigaben neu\Freigaben]*/;


// benötigte Daten auslesen
$quelltext = file_get_contents("http://{$fritzbox}/internet/port_fw.lua?sid={$SID}");
$checked = GetTextBetween($quelltext, 'name="active_', 'value');

// Anzahl der Freigaben
$anzahl = count($checked);

// -----------------------------------------------------------------------------
// html-Code erstellen

$str = '<style type="text/css">
.button {
background-color: #4c3324;
cursor:hand;
font-family: Arial;
font-weight: bold;
border-color:#000000;}
</style>';

$str .= '<table width="90%" align="center">';
$str .= "<tr><td><b>Zustand</b></td><td><b>Regel-Name</b></td><td><b>Protokoll</b></td><td><b>Quellport(s)</b></td><td><b>Ziel-IP</b></td><td><b>Zielport(s)</b></td></tr>";


// für jede dieser Freigaben ...
for ($i=0; $i<$anzahl; $i++)
	{
	$str .= '<tr>';
	//  ... prüfen, ob die Freigabe aktiv sind
	$checked = GetTextBetween($quelltext, 'id="ui_Active_' . ($i+1) . '"', '>');
   (trim($checked[0]) == 'checked="checked"') ? $str .= '<td align="left">aktiv</td>' : $str .= '<td align="left">inaktiv</td>';

	//  ... die Details auslesen
	$checked = GetTextBetween($quelltext, '<span title="', '">');
	
	// Name
	$str .= '<td align="left">'.trim($checked[$i*5]).'</td>';
	// Protokoll
	$str .= '<td align="left">'.trim($checked[$i*5+1]).'</td>';
	// von Port
	$str .= '<td align="left">'.trim($checked[$i*5+2]).'</td>';
	// an Device
	$str .= '<td align="left">'.trim($checked[$i*5+3]).'</td>';
	// an Port
	$str .= '<td align="left">'.trim($checked[$i*5+4]).'</td>';

	$str .= '</tr>';
	}

$str .= '</table>';

//html in Variable schreiben zum Anzeigen im WF als ~HTMLBox
SetValue ($html, $str);


// -----------------------------------------------------------------------------
// Funktion(en)

function GetTextBetween($string, $start, $end)
	{
   preg_match_all( "/$start(.*)$end/U", $string, $match );
   return $match[1];
	}

?>

Hallo zusammen,

@hrahlers danke für das Script.

Hab mich nach nach langem wieder mal dran gemacht und kann die Freigaben jetzt wieder auslesen. Hab auch die „SchaltButtons“ wieder eingebaut, aber trotz viel lesen und probieren nicht hinbekommen zu schalten. Ist da schon jemand weiter?

Ich hab ne 7490 mit FRITZ!OS 06.05

Hab da 2 Probleme.

  1. Wie muss die Buttonzeile aussehen ohne dojo? Hab hrahlers Tipp zwar verfolgt, aber paresy’s Antwort und hrahlers Korrektur leider nicht umsetzen können.
    Wie müsste denn die Zeile
$str .= '<input type="button" class="button" value="Aktivieren" onclick="dojo.xhrGet({ url: \'user/dojo/ips_runscriptwaitex.php?script_id='.$script_id.'&regel_id='.$i.'&regel_wert=ein\' });"/>';

nach der Umsetzung korrekt aussehen?

  1. Das Schalten an sich. Hab mal ein „Standalone-Script“ Script zum schalten einer bestimmten Freigabe erstellt. vermutlich sende ich aber die falschen Parameter. Das mit Curl hab ich auch nicht wirklich verstanden. Immer nur abgetippt. Jetzt wo ich was anpassen muss bin ich verloren.
    Hat dazu schon jemand was gefunden und evtl umgesetzt?

Danke im Voraus für Eure Antworten.

Hallo zusammen,
habe die Tage versucht mit den Skripten in diesem Beitrag meine Fritzbox Ports zu schalten, bin aber vermutlich Aufgrund der neueren Firmware :confused: anfänglich daran gescheitert.

Anbei habe ich eine „RS IPS Project Exporter“ Datei angefügt mit der zumindest für eine FB 7390 mit Fritz!OS 6.20 alles wieder funktioniert. Das Script 3 aus Beitrag #7 „ips_runscriptwaitex.php“ wird neben dem Exporter file zusätzlich wieder benötigt

Inhalt / Ergänzungen:

  • HTML Box wird wieder wie in Beitrag #7 von Andreas dargestellt und die enthaltenen HTML Buttons zum Schalten funktionieren wieder.

  • Alternativ zur HTML Box können auch einzelne Ports (Bsp. „Port 3“, „Port 4“) angelegt werden, um diese etwas „schlanker“ z.B. in einer WF auf einem Handy darstellen zu können. Es müssen dazu nicht alle vorhandenen Ports als Variable angelegt sein

-„Config script“ mit Login und Variablen angelegt

Installation:

  1. „RS IPS Project Exporter“ Datei importieren
  2. ips_runscriptwaitex.php lokal speichern
  3. Config script anpassen
  4. Script „Freigaben auslesen“ einmalig starten
  5. Gewünschte Variablen mit WF verlinken

Viel Spaß damit Grüße Tom

PS: Eigentlich wäre das file hier
http://www.ip-symcon.de/forum/threads/23236-Funktionierende-Scripts-f%C3%BCr-FritzOS-6-0-7390?p=212718#post212718
auch gut aufgehoben. Kann man den verlinken?

IP Symcon Port 2.jpg

Ports in FB schalten - FB7390 OS6.20.zip (20.4 KB)

Hallo tom75,

vielen Dank für diese Lösung. Hab sie mir noch nicht genau angeschaut. Nur installiert, configuriert, funzt.

Super. So sah meine Lösung vor dem grossen OS-Wechsel aus. Die Lösung die danach hier im Forum kam hab ich zwar genutzt, hat mir aber nicht so gefallen, da ich die Portbezeichnugen nicht ändern konnte (oder ich war zu doof dazu, oder …)

Das hier Out of the Box, nochmal: Super und Danke.

PS: auch mit der 7490 OS 6.2