Hallo zusammen,
da ich ein Netz hinter einem Router habe den ich nicht als DynDNS-Client verwenden kann möchte ich gerne über IPS meine öffentliche IP an an den Provider rückmelden.
Ich habe dafür folgendes Skript angelegt und das Bsp. vom Provider (in dem Fall Strato) nachgebaut.
Leider bekomme ich aber als Antwort „badagent 0.0.0.0“ und finde den Fehler nicht.
(kenne mich aber mit cURL auch überhaut nicht aus…)
<?php
//DynDNS-Client Strato [TEST]
$Benutzer = "domain.de";
$Passwort = "123456789";
$Domain = "vpn.domain.de";
$Server = "dyndns.strato.com";
/**** Die Abfrage ****/
// IP holen
$externalContent = file_get_contents('http://checkip.dyndns.com/');
preg_match('/\b(?:\d{1,3}.){3}\d{1,3}\b/', $externalContent, $m);
$externalIp = $m[0];
$IP = $externalIp;
//Debug
echo $IP."\n";
// Update String bauen
$Update ='https://';
$Update.=$Benutzer.':'.$Passwort;
$Update.='@'.$Server.'/nic/update?hostname=';
$Update.=$Domain.'&myip='.$IP;
//Debug
echo $Update."\n";
// CURL($Update);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Update);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ERR = curl_exec($ch);
curl_close($ch);
unset($ch);
// "Fehler"-Ausgabe
echo $ERR;
Die Debugausgabe sieht so aus:
84.148.29.xxx
https://domain.de:123456789@dyndns.strato.com/nic/update?hostname=vpn.domain.de&myip=84.148.29.xxx
badagent 0.0.0.0
wenn ich den zusammengebauten String in einen Browser eingebe kommt ein Fenster in dem ich User und PW angeben muss, danach wird mit good und die IP bestätigt.
Ich denke daher, dass die Anmeldung mit User und PW über cURL nicht so läuft wie es soll, habe aber keinerlei Ahnung von https und cURL und benötige Hilfe.