Wie wäre es wenn du es mit einem Script und crontab machst
So wie ich es hier beschrieben habe.
Oder doch via php, bitte Pfade anpassen. Achtung ungetestet.
<?php
// Pfade definieren
$wopi_ip_file = 'wopi-ip.txt';
$wopi_ip_hist_file = 'wopi-ip-hist.txt';
$cloud_occ_command = '/usr/bin/php8.2 -f /path/to/your/Cloud/occ';
// Aktuelle dynamische IP-Adresse aus Datei lesen
$dyn_ip = file_get_contents($wopi_ip_file);
// Externe IP-Adresse abrufen
$external_ip_data = file_get_contents('http://checkip.dyndns.org');
preg_match('/Current IP Address: ([\d\.]+)/', $external_ip_data, $matches);
$ext_ip = $matches[1];
if (empty($ext_ip)) {
echo "Keine Internetverbindung. Keine IP zum Aktualisieren.\n";
} elseif ($dyn_ip === $ext_ip) {
echo "Ist aktuell $dyn_ip\n";
} elseif ($dyn_ip !== $ext_ip) {
// IP in Datei und Historie speichern
file_put_contents($wopi_ip_file, $ext_ip);
file_put_contents($wopi_ip_hist_file, date("m.d.Y") . ' ' . $ext_ip . "\n", FILE_APPEND);
echo "DynDNS ist nicht aktuell, Update gestartet: Neue IP = $ext_ip\n";
// Konfiguration in Cloud anpassen
$command = "$cloud_occ_command config:app:set richdocuments wopi_allowlist --value=$ext_ip";
exec($command, $output, $return_var);
if ($return_var !== 0) {
echo "Fehler beim Ausführen des Cloud-Befehls.\n";
print_r($output); // Fehlermeldung ausgeben
}
} else {
echo "ERROR\n";
}
Am besten das Script auch alle 10min mit crontab ausführen, so wird ohne dein zu tun die IP immer aktuell gehalten.
Grüße