Speedport Hybrid DynDNS

Hallo Leute,

habe ein Speedport Hybrid Router von der Telekom im Einsatz. und weil das Teil einfach nur schlecht ist, läuft das Teil nur als „Modem“ den Rest macht weiterhin meine Fritzbox 7390.
Das Problem was ich habe ist die Dynamische DNS Funktion. Das muss über Speedport laufen :frowning: ich habe aber meine DynDNS beim All-inkl. Das Unterstütz aber Speedport nicht :mad:

Gibt es eine andere Möglichkeit für den Zugriff Außerhalb?

Im Netzt habe ich DAS gefunden. Ist aber für DynDNS.

Kann man sowas mit einem PI für all-Inkl realisieren?

Würde mich sehr Freuen wenn mir jemand Helfen könnte.

Gruß

Hallo,

warum muss die DynDNS Aktuallisierung am Speedport erfolgen, wenn dieser ja nur stumpfes Modem ist?

Was passiert wenn du das in der FritzBox einrichtest?

Das sollte ja kein Problem sein: Anleitungen, KAS, Tools, DDNS - Dynamisches DNS: Einrichtung Fritzbox 7320

Ich vermute mal der Speedport ist nicht nur ein Modem (dann würde er nur bis Layer 2 arbeiten), sondern tatsächlich mindestens noch ein Router (Bis Layer 3).

Somit ist es deutlich einfacher das DDNS auf dem Router zu machen, da er ja mitkriegt, wenn die dyn IP sich ändert. Die Fritz im LAN wird das (Obwohl es technisch geht) vermutlich nicht mitbekommen und deswegen keinen update senden?

Klar. Schau mal hier. Ist zwar nicht für allink, aber die Idee sollte passen. Mache das auch so :wink:

Raspberry Pi Einsteiger Guide – DynDNS – Teil 5

paresy

Hi,

dyndns ist m.E. jetzt kostenpflichtig.

Ich habe auch einen Speedport Hybrid und aktualisiere meine IP-Daten über Raspberry mit IPS. Auch wenn dies „nicht ganz so zeitnah“ erfolgen kann wie direkt am Router - meine externe IP-ändert sich alle 10-40 Tage …

Hiermit ermittle ich meine externe IP (alle 25 Minuten):

$urlRequest = "http://checkip.feste-ip.net";
$handle = file_get_contents($urlRequest);
$handle = str_replace ("<html><head><title>Current IP Check</title></head><body>Current IP Address: ","", $handle);
$handle = str_replace ("</body></html>","",$handle);
$handle = str_replace ("
","",$handle);        //neuerdings mit Zeilenumbruch
$NeueAdresse=$handle;
//echo "NeueAdresse $NeueAdresse";
//
if ($NeueAdresse==getvaluestring(39444 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/))  {
    IPS_LOGMESSAGE("Systeminfo (".$_IPS['SELF'].")","WAN-IP-Adresse unverändert: ".getvaluestring(39444 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/));
}

Wenn diese dann sich ändert aktualisiere ich diverse DYNDNS-Provider / Hosts:
Beispiel SPDNS (sehr guter deutscher DYNDNS-Anbieter - kostenfrei):

 <?
$ipaddr = getvaluestring(39444 /*IP-Adresse (Aktiv)]*/);
//echo $ipaddr;
//
$domain = "hostname.spdns.de";
$konto= "konto";
$passwd =  "password";
//
$return = Sys_GetURLContentEx("https://update.spdns.de/nic/update?hostname=".$domain."&myip=".$ipaddr, Array("AuthUser"=>$konto,"AuthPass"=>$passwd,"Timeout"=>10000));
echo $return;
$return = substr($return,0,5);
setValue(42816 /*DNS-Update erfolgreich]*/, ($return == "nochg"));
?>

Ich hoffe, es hilft Dir weiter.

Ciao
herbertf

@paresy
Danke für den Link.

@herbertf
Deine vorgehensweise sieht sehr interessant aus. Danke für den Script :slight_smile:
Werde ich heute Abend auf jeden Fall Testen und Berichten.

Wenn ich das mit all-Inkl. nicht hin bekomme, mache ich mir einfach ein SPDNS Account :wink:

Gruß

Hallo herbertf,

deine Scripts funktionieren Super:D Vielen Dank!

Habe aber paar Fragen.

Ist das Richtig das ich die IP nicht sehe?

<?

$urlRequest = "http://checkip.feste-ip.net";
$handle = file_get_contents($urlRequest);
$handle = str_replace ("<html><head><title>Current IP Check</title></head><body>Current IP Address: ","", $handle);
$handle = str_replace ("</body></html>","",$handle);
$handle = str_replace ("
","",$handle);        //neuerdings mit Zeilenumbruch
$NeueAdresse=$handle;
//echo "NeueAdresse $NeueAdresse";
//
if ($NeueAdresse==getvaluestring(52859 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/))  {
    IPS_LOGMESSAGE("Systeminfo (".$_IPS['SELF'].")","WAN-IP-Adresse unverändert: ".getvaluestring(52859 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/));
    }
?>

Bei dem zweiten Script wird in eine variable hinterlegt ob die Übertragung Erfolgreich was. Richtig?
Welche Variable ist das? bekomme nur FALSE oder 0 in die Variable geschrieben.

 <?
$ipaddr = getvaluestring(52859 /*IP-Adresse (Aktiv)]*/);
//echo $ipaddr;
//
$domain = "host.eu";
$konto= "konto";
$passwd =  "pass";
//
$return = Sys_GetURLContentEx("https://dyndns.kasserver.com/nic/update?hostname=".$domain."&myip=".$ipaddr, Array("AuthUser"=>$konto,"AuthPass"=>$passwd,"Timeout"=>10000));
echo $return;
$return = substr($return,0,5);
setValue(35260 /*DNS-Update erfolgreich]*/, ($return == "nochg"));
?>

Die IP wird im all.inkl Account Aktualisiert :D:D:D

Gruß

Hi,

die erste Frage verstehe ich nicht … kann ich noch etwas tun?

Ciao
herbertf

Ich meine das die IP nicht in die Variable geschrieben wird.
Die String Variable bleibt Leer.

Und das andere:

setValue(40797 /*DNS-Update erfolgreich]*/, ($return == "nochg"));

Welche Variable ist das? Boolen, Float usw.

Gruß

Also die String Variable (bei mir 39444) enthält die IP-Adresse. Ich hatte scheinbar nicht alles markiert …(else hat gefehlt)

$urlRequest = "http://checkip.feste-ip.net";
$handle = file_get_contents($urlRequest);
$handle = str_replace ("<html><head><title>Current IP Check</title></head><body>Current IP Address: ","", $handle);
$handle = str_replace ("</body></html>","",$handle);
$handle = str_replace ("
","",$handle);        //neuerdings mit Zeilenumbruch
$NeueAdresse=$handle;
echo "NeueAdresse $NeueAdresse";
//
if ($NeueAdresse==getvaluestring(39444 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/))  {
    IPS_LOGMESSAGE("Systeminfo (".$_IPS['SELF'].")","WAN-IP-Adresse unverändert: ".getvaluestring(39444 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/));
}
else {
    setvaluestring(39444 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/,$NeueAdresse);
    IPS_LOGMESSAGE("Systeminfo (".$_IPS['SELF'].")","WAN-IP-Adresse geändert: ".getvaluestring(39444 /*[Tools, Service\Systeminfo\Internet\Internetzugang und DNS-Namen\WAN-IP-Adresse]*/));
}
setValue(40797 /*DNS-Update erfolgreich]*/, ($return == "nochg"));

Welche Variable ist das? Boolen, Float usw.
Obige Variable (40797) ist vom Typ: STRING

Ciao

Also die String Variable (bei mir 39444) enthält die IP-Adresse. Ich hatte scheinbar nicht alles markiert …(else hat gefehlt)

Aha, jetzt passt alles :smiley: Danke.

Obige Variable (40797) ist vom Typ: STRING

Hier hänge ich noch ein bisschen :o

Wenn das Script Ausgeführt wird, wird die IP auch zu All-Inkl. gesendet. In der Variable steht jetzt FALSE.
Ist das Richtig?

setValue(46101, ($return == "nochg"));

Gruß

Hi,

ich habe mir das „IP-Update-Script“ nochmal angeschaut, es ist glaube ich besser, das Script unter einer Boolean-Variablen zu erstellen.

Hier nochmal das angepasste IP-Update-Script (für SPDNS-Dienst):


<?
$ipaddr = getvaluestring(39444 /*IP-Adresse (Aktiv)]*/);
//echo $ipaddr;
//
$domain = "hostname.spdns.de";
$konto= "konto";
$passwd =  "password";
//
$return  =  Sys_GetURLContentEx("https://update.spdns.de/nic/update?hostname=".$domain."&myip=".$ipaddr,   Array("AuthUser"=>$konto,"AuthPass"=>$passwd,"Timeout"=>10000));
$return = substr($return,0,5);
if ($return=="nochg") SetValueBoolean(IPS_GetParent($_IPS['SELF']),true);        //Rückmeldung vom SPDNS Server auswerten
else SetValueBoolean(IPS_GetParent($_IPS['SELF']),false);
?>

Ciao
HerbertF