Nabend.
Ich versuche gerade eine Weiterleitung für meine DynDNS zu schreiben.
Das heißt ich versuche die IP-Adresse von meiner FritzBox (Router) an meinen Server (www.beispiel.de) und sie dann von dort weiter an www.dyndns.org zu senden.
Ersteres funktioniert super: Sobald der Router eine neue IP zugewiesen bekommt, landet die IP in meiner Datenbank und kann weiter verarbeitet werden.
Bsp.-URL, die vom Router aufgerufen wird:
http://beispiel.de/dyndns/index.php?username=<username>&password=<pass>&hostname=<domain>&ip=<ipaddr>
Für eine Aktualisierung bei dynDNS.org steht ebenfalls eine URL zur Verfügung:
http://username:password@members.dyndns.org/nic/update?hostname=yourhostname&myip=ipaddress&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG
Nun komm ich mit meinem PHP-Code und versuche die zweite URL im Hintergrund zu öffnen, sobald die erste URL aufgerufen wird.
Das sieht bei mir derzeit so aus:
if(isset($_GET['username'],$_GET['password'],$_GET['hostname'],$_GET['ip'])){
$sql = "INSERT INTO ".MYSQL_PREFIX."dns_home
(ip,
time)
VALUES
('".$_GET['ip']."',
NOW())
";
mysql_query($sql) OR die(mysql_error());
file('http://'.$_GET['username'].':'.$_GET['password'].'@members.dyndns.org/nic/update?hostname='.$_GET['hostname'].'&myip='.$_GET['ip'].'&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG');
}
Hier versuche ich die URL mit der Funktion file(); anzusprechen.
Das ganze schein nicht so zu funktionieren, wie ich mir es vorgestellt habe =)
Fehlercode:
Warning: file(http://...@members.dyndns.org/nic/update?hostname=<domain>&myip=<ipaddr>&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG) [function.file]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/www/vhosts/beispiel.de/httpdocs/dyndns/index.php on line 28
Frage ist nun, wie rufe ich die URL von dynDNS.org im Hintergrund auf?
Ein Kollege behauptet, ich müsste hier mit SOCKS arbeiten.
Kann jemand helfen? Ich wäre sehr dankbar.