tag:forum.selfhtml.org,2005:/self Probleme bei DynDNS mit no-ip.com und Fritz-Box, aber PHP-Fehler gefunden... – SELFHTML-Forum 2021-04-23T05:23:03Z https://forum.selfhtml.org/self/2021/apr/22/probleme-bei-dyndns-mit-no-ip-com-und-fritz-box/1787597#m1787597 TS 2021-04-22T18:40:02Z 2021-04-22T19:49:30Z Probleme bei DynDNS mit no-ip.com und Fritz-Box, aber PHP-Fehler gefunden... <p>Hello,</p> <p>seit ein paar Tagen habe ich Probleme mit meinem DynDNS in der Fritzbox.<br> Anbieter ist no-ip.com. Es hatte bis jetzt längere Zeit einwandfrei funktioniert. Ich habe nichts geändert und kein Update bekommen.</p> <p>Beim Versuch, den Melde-Request manuell ausführen zu lassen, bekomme ich immer einen Status 401 als Antwort.</p> <p>Beide Varianten scheitern:</p> <pre><code class="block language-text"> https://USERNAME:PASSWOERT@dynupdate.no-ip.com/nic/update?hostname=test.ddns.net&myip=79.255.90.65 wobei USERNAME und PASSWORT base64-encoded sind https://CREDENTIALS@dynupdate.no-ip.com/nic/update?hostname=test.ddns.net&myip=79.255.90.65 wobei CREDENTIALS = base64_encode(username + ':' + passwort) ist (Pseudo-Code) </code></pre> <p>Witzigerweise hatte die erste Variante bei der manuellen Meldung eine Zeit lang funktioniert, obwohl die eigentlich falsch ist...</p> <h4>Browser</h4><p>Wenn man das im Browser durchführt kommt also das "401-Popup". Wird das dann mit den passenden Werten ausgefüllt, kommt ein OK für die übermittelte IP. Die ist dann auch sofort im DNS verfügbar.</p> <h4>PHP</h4><p>Wenn ich das Ganze in PHP versuche, bekomme ich auch den Status 401.</p> <p>Wie müsste der Ablauf aussehen, damit ich es mittels PHP-Script Host2Host hinbekomme?</p> <p>Bisher sieht es im Kern so aus;</p> <pre><code class="block language-php"><span class="token variable">$remote_url</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'https://dynupdate.no-ip.com/nic/update?hostname=test.ddns.net&myip='</span> <span class="token operator">.</span> <span class="token function">trim</span><span class="token punctuation">(</span><span class="token variable">$ip</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$_opts</span> <span class="token operator">=</span> <span class="token keyword">array</span> <span class="token punctuation">(</span> <span class="token string single-quoted-string">'http'</span><span class="token operator">=></span><span class="token keyword">array</span> <span class="token punctuation">(</span> <span class="token string single-quoted-string">'method'</span><span class="token operator">=></span><span class="token string double-quoted-string">"GET"</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'header'</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Authorization: Basic "</span> <span class="token operator">.</span> <span class="token function">base64_encode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"<span class="token interpolation"><span class="token variable">$username</span></span>:<span class="token interpolation"><span class="token variable">$password</span></span>"</span><span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$context</span> <span class="token operator">=</span> <span class="token function">stream_context_create</span><span class="token punctuation">(</span><span class="token variable">$_opts</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">## Open the file using the HTTP headers set above</span> <span class="token variable">$result</span> <span class="token operator">=</span> <span class="token function">file_get_contents</span><span class="token punctuation">(</span><span class="token variable">$remote_url</span><span class="token punctuation">,</span> <span class="token constant boolean">false</span><span class="token punctuation">,</span> <span class="token variable">$context</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Der letzte Fehler lag in der <code>$remote_url</code>, in der ich anstelle eines '&' ein '&amp;' notiert hatte. Das gehört in den HTML-Kontext, aber nicht in die zu übermittelnde URL.</p> <p>Es funktioniert nun so.</p> <p>Warum aber meine Fritzbox nicht mehr mit no-ip.com zusammenarbeitet, habe ich noch nicht herausgefunden.</p> <p>.<br> Glück Auf<br> Tom</p> https://forum.selfhtml.org/self/2021/apr/22/probleme-bei-dyndns-mit-no-ip-com-und-fritz-box/1787607#m1787607 Raketenglaskugelroller 2021-04-23T05:23:03Z 2021-04-23T05:23:03Z Probleme bei DynDNS mit no-ip.com und Fritz-Box, aber PHP-Fehler gefunden... <blockquote> <p>seit ein paar Tagen habe ich Probleme mit meinem DynDNS in der Fritzbox.</p> </blockquote> <blockquote> <pre><code class="block">a) https://USERNAME:PASSWOERT@dynupdate.no-ip.com … b) https://CREDENTIALS@dynupdate.no-ip.com … </code></pre> </blockquote> <blockquote> <p>Warum aber meine Fritzbox nicht mehr mit no-ip.com zusammenarbeitet, habe ich noch nicht herausgefunden.</p> </blockquote> <p>Womöglich haben sich die Macher der Fritzbox darauf verlassen, dass die Varianten a) oder b) noch funktionieren, denn</p> <blockquote> <p>Ich habe nichts geändert und kein Update bekommen.</p> </blockquote> <p>Da kann es ja nur an der abgeschalteten, respektive gefixten Schnittstelle von no-ip.com liegen, bei welcher es bis dato noch möglich war, die CREDENTIALs per GET zu übertragen, was eben unsicher ist. Soll heißen: Nach dem nächsten Update der Fritzbox geht es wohl (hoffentlich) wieder.</p> <p>Tipp:</p> <p>Aus einem ähnlichem Grund habe ich bei meinem Hoster einfach zwei CNAME-Records für meine Hostnamen auf den bei myfritz.net gelegt.</p> <p>Etwas wie <a href="https://www.fastix.org/netztools/index.php?addr=code.fastix.org&action=nslookup" rel="nofollow noopener noreferrer">nslookup code.fastix.org</a> zeigt das.</p>