Snickra ihop egen DynDNS? [LÖST]
Postat: 04 sep 2010, 17:58
Om man har en egen webserver med dynamiskt tilldelad IP-adress och vill kunna nå denna utifrån så finns det externa DNS-tjänster för detta, tex DynDNS och yi.org.
Nu funderar jag på om man inte kunde åstadkomma detta själv relativt enkelt genom man skickar aktuell IP hemifrån till en extern webbsida.
Ungefär såhär:
1. Ett bashskript körs på hemmaservern som hämtar aktuell extern IP, typ
2. Bashskriptet skickar IP-addressen till den externa webbplatsen i ett GET-paket, tex med hjälp av CURL eller i värsta fall med WGET, typ
Bashskriptet körs tex en gång om dagen med hjälp av cron.
3. PHP-skriptet på den externa webbplatsen tar emot anropet och hämtar ip-addressen, typ:
4. PHP-skriptet på den externa webbplatsen lagrar IP-addressen i en textfil:
5. När du besöker den externa webbplatsen hämtar skriptet aktuell ip från textfilen och visar den, typ:
Skulle det funka (bortsett från den slarviga koden)? Finns det bättre lösningar? Alla idéer är välkomna!
/Per
Nu funderar jag på om man inte kunde åstadkomma detta själv relativt enkelt genom man skickar aktuell IP hemifrån till en extern webbsida.
Ungefär såhär:
1. Ett bashskript körs på hemmaservern som hämtar aktuell extern IP, typ
Kod: Markera allt
ifconfig | grep inet addr:192.168.*
Kod: Markera allt
wget http://minsajt/mittskript.php?IP=192.168.1.99
3. PHP-skriptet på den externa webbplatsen tar emot anropet och hämtar ip-addressen, typ:
Kod: Markera allt
$ip = !empty($_GET['IP']) ? $_GET['IP'] : FALSE;
Kod: Markera allt
if (!empty($ip)) {
if ($open = fopen($textfile, 'w')){
fwrite($open, $ip;
fclose($open);
}
Kod: Markera allt
if ( (is_readable($textfile)) && (empty($ip)) ) {
if ($fp = fopen($textfile,'r')) {
$ip = fread($fp);
fclose($fp);
}
}
if (!empty($ip)) {
echo "<a href=\"$ip\">Hemmaservern har IP $ip</a>";
}
/Per