DynDNS Updater mit ESP8266

Hallo

Ich möchte einen ESP8266 ( Wemos D1 R1 ) als DynDNS Updater benutzen, da mein Router goip nicht unterstützt.

Wenn ich folgende URL im Browser eingebe wird die IP aktualisiert. Username password subdomain wurden in der folgenden URL überschrieben.

http://www.goip.de/setip?username=uxxxxxxxxso&password=4xLixxxxxxX&subdomain=schxxx.goip.de

Wie muss der String aussehen, den ich per client.print() ins Netz gebe.

Gruß Mathias

MW200: http://www.goip.de/setip?username=uxxxxxxxxso&password=4xLixxxxxxX&subdomain=schxxx.goip.de

Vorschlag, besorg dir eine Fritzbox!

Falls das keine Option für dich ist versuch es mit dem ESP8266HTTPClient.

zB.:so

http.begin("http://www.goip.de/setip"); http.addHeader("Content-Type", "application/x-www-form-urlencoded"); http.POST("username=uxxxxxxxxso&password=4xLixxxxxxX&subdomain=schxxx.goip.de");

Ungetestet, keine Ahnung ob das so geht.

Gruß Fips

Hallo
Danke Fips für die Antwort.

Habe im Webbrowser (Firefox 61) im Netzwerkanalysetool mir den Datenfluss angeschaut.
Habe von Header eine Ausschnitt des Bildschirms mitgeschickt.

Der Browser schickt bei der anfangs erwähnten Anfrage ein GET. Diese Anfrage vom ESP 8266 geschickt, beantwortet der Server mit" 400 Bad Request "

Das schickt der ESP:
GET/setip?username=xxxxxxxOaso5h&password=xxxxxxxJsl8X&subdomain=sxxxxxxxx.goip.de
Host: goip.de
Connection: close

Muss ich den ganzen Header mitschicken?

Gruß Mathias

MW200: Der Browser schickt bei der anfangs erwähnten Anfrage ein GET. Diese Anfrage vom ESP 8266 geschickt, beantwortet der Server mit" 400 Bad Request "

Ich habe es jetzt mal probiert. Bei mir kommt im Esp... genau wie beim Browser:

HTTP/1.1 403 Forbidden Zugriff verweigert.

Das schickt der ESP: GET/setip?username=xxxxxxxOaso5h&password=xxxxxxxJsl8X&subdomain=sxxxxxxxx.goip.de

Mit dem ESP8266HTTPClient ??

Ich habe da keinen Zugang, ob es dann mit Passwort funktioniert musst du selber testen.

    http.begin("http://www.goip.de/setip");
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    int httpCode = http.POST("username=uxxxxxxxxso&password=4xLixxxxxxX&subdomain=schxxx.goip.de");

Anwort von goip.de

HTTP / 1.1 403 Antwort: **********************************************************************

GoIP.de Updater


Zugriff verweigert.

Gruß Fips

Das hängt mit Sicherheit an der Maskierung der Sonderzeichen (macht man mit )

Hallo! Danke Fips für die Unterstützung.

Habe das Problem gelöst. Hier der Code:


include

include

const char* ssid = "SSID"; const char* password = "Pass."; void setup () { Serial.begin(115200); WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("Connecting.."); } } void loop() { if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status HTTPClient http; //Declare an object of class HTTPClient http.begin("http://www.goip.de/setip?username=xxxxxxxxxxx&password=xxxxxxxxxl8X&subdomain=sxxxxxx.goip.de"); //Specify request destination int httpCode = http.GET(); //Send the request

if (httpCode > 0) { //Check the returning code String payload = http.getString(); //Get the request response payload Serial.println(payload); //Print the response payload } http.end(); //Close connection } delay(84000000); //Send a request every day }


Ein tägliches Update reicht. Bei All IP Anschluss wird die IP alle 180 Tage gewechselt. Netzausfall, Routerreset oder Routereinstellungen können einen vorzeitigen Wechsel der IP veranlassen. Man kan auch den Code erweitern und die Netz IP abfragen und mit der vorherigen IP vergleichen.

Gruß Mathias