Router soll IP auf eigenen Webspace senden anstatt DynDns
max DDNS
- php
0 dedlfix0 Der Martin
Hallo Liebe Leute
Wie funktioniert eine DynDns Empfangsseite für Router
Der Router sollte an meine HP senden und diese sollte die Ip Adresse
wie ein Counter in Eine Txt oder SQL oder? schreiben und auf der HP Ausgeben.
zb. REMOTE_ADDR: aber vom Router
Danke im Vorraus
(ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke)
Hi!
Wie funktioniert eine DynDns Empfangsseite für Router
Was ist eine "DynDns-Empfangsseite für Router"?
Der Router sollte an meine HP senden und diese sollte die Ip Adresse
wie ein Counter in Eine Txt oder SQL oder? schreiben und auf der HP Ausgeben.
Der Router macht einen Webrequest, der unter anderem die öffentliche IP-Adresse als Parameter überträgt. Das Ziel muss den Request auswerten und - in deinem Fall - eine Webseite erstellen, die öffentlich abrufbar ist.
zb. REMOTE_ADDR: aber vom Router
Wohl kaum, denn dann zeigt deine in der Webseite eingeblendete IP-Adresse meist auf eine Suchmaschine, die grad zufällig vorbeikam.
Lo!
Hallo,
Wie funktioniert eine DynDns Empfangsseite für Router
Der Router sollte an meine HP senden und diese sollte die Ip Adresse
wie ein Counter in Eine Txt oder SQL oder? schreiben und auf der HP Ausgeben.
deine Beschreibung ist etwas wirr und konfus; Glaskugeln -zumal funktionierende- sind sehr rar.
Ich vermute, du hast einen Router mit einem integrierten DDNS-Update-Client (die Router von AVM haben das, aber viele andere inzwischen auch), und möchtest jeweils deine aktuelle IP-Adresse nicht an DynDNS melden, sondern an deinen eigenen Webspace.
Dann tu das doch einfach. ;-)
Voraussetzung ist, dass du in deinem Router nicht nur aus vorkonfigurierten DDNS-Diensten auswählen, sondern die Angaben auch selbst eintragen kannst. Der richtige Eintrag dazu lautet in der Regel "Benutzerdefiniert" oder "Custom".
Zusätzlich musst du die genaue URL des Update-Scripts auf dem Server einschließlich der URL-Parameter eintragen, die du in diesem Script vorgesehen hast.
Serverseitig brauchst du dann nichts weiter als eben dieses Script (z.B. in PHP), das die Angaben auswertet und speichert. Achte auf eine hinreichende Plausibilitätsprüfung, damit nicht jeder "Depp" den Request nachbauen und seine IP hinterlegen kann.
(ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke)
Dasselbe habe ich übrigens auch vor - ich möchte damit erreichen, dass ausgewählte Ressourcen auf meinem heimischen Testserver auch innerhalb meiner Webpräsenz erscheinen können, und ich wollte von Drittanbietern (beispielsweise dyndns.org) unabhängig sein.
Ciao,
Martin
Hallo,
Wie funktioniert eine DynDns Empfangsseite für Router
Der Router sollte an meine HP senden und diese sollte die Ip Adresse
wie ein Counter in Eine Txt oder SQL oder? schreiben und auf der HP Ausgeben.deine Beschreibung ist etwas wirr und konfus; Glaskugeln -zumal funktionierende- sind sehr rar.
Ich vermute, du hast einen Router mit einem integrierten DDNS-Update-Client (die Router von AVM haben das, aber viele andere inzwischen auch), und möchtest jeweils deine aktuelle IP-Adresse nicht an DynDNS melden, sondern an deinen eigenen Webspace.
Dann tu das doch einfach. ;-)
Ok ich hatte das schon gemacht.........
Voraussetzung ist, dass du in deinem Router nicht nur aus vorkonfigurierten DDNS-Diensten auswählen, sondern die Angaben auch selbst eintragen kannst. Der richtige Eintrag dazu lautet in der esten mit Regel "Benutzerdefiniert" oder "Custom".
Zusätzlich musst du die genaue URL des Update-Scripts auf dem Server einschließlich der URL-Parameter eintragen, die du in diesem Script vorgesehen hast.
Hast du so ein Script wäre echt toll am besten mit einen .htacsess
vielen Dank MAX
Serverseitig brauchst du dann nichts weiter als eben dieses Script (z.B. in PHP), das die Angaben auswertet und speichert. Achte auf eine hinreichende Plausibilitätsprüfung, damit nicht jeder "Depp" den Request nachbauen und seine IP hinterlegen kann.
(ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke)
Dasselbe habe ich übrigens auch vor - ich möchte damit erreichen, dass ausgewählte Ressourcen auf meinem heimischen Testserver auch innerhalb meiner Webpräsenz erscheinen können, und ich wollte von Drittanbietern (beispielsweise dyndns.org) unabhängig sein.
Ciao,
Martin
Hallo,
Wie funktioniert eine DynDns Empfangsseite für Router
Der Router sollte an meine HP senden und diese sollte die Ip Adresse
wie ein Counter in Eine Txt oder SQL oder? schreiben und auf der HP Ausgeben.deine Beschreibung ist etwas wirr und konfus; Glaskugeln -zumal funktionierende- sind sehr rar.
Ich vermute, du hast einen Router mit einem integrierten DDNS-Update-Client (die Router von AVM haben das, aber viele andere inzwischen auch), und möchtest jeweils deine aktuelle IP-Adresse nicht an DynDNS melden, sondern an deinen eigenen Webspace.
Dann tu das doch einfach. ;-)
Ok ich hatte das schon gemacht.........
Voraussetzung ist, dass du in deinem Router nicht nur aus vorkonfigurierten DDNS-Diensten auswählen, sondern die Angaben auch selbst eintragen kannst. Der richtige Eintrag dazu lautet in der esten mit Regel "Benutzerdefiniert" oder "Custom".
Zusätzlich musst du die genaue URL des Update-Scripts auf dem Server einschließlich der URL-Parameter eintragen, die du in diesem Script vorgesehen hast.Hast du so ein Script wäre echt toll am besten mit einen .htacsess
vielen Dank MAXServerseitig brauchst du dann nichts weiter als eben dieses Script (z.B. in PHP), das die Angaben auswertet und speichert. Achte auf eine hinreichende Plausibilitätsprüfung, damit nicht jeder "Depp" den Request nachbauen und seine IP hinterlegen kann.
(ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke)
Dasselbe habe ich übrigens auch vor - ich möchte damit erreichen, dass ausgewählte Ressourcen auf meinem heimischen Testserver auch innerhalb meiner Webpräsenz erscheinen können, und ich wollte von Drittanbietern (beispielsweise dyndns.org) unabhängig sein.
Ciao,
Martin
OK NEU FORMULIERT
Hallo Forum wer kennt ein simples Script für den Webspace.
ich habe einen Router mit einem integrierten DDNS-Update-Client, und möchte jeweils meine aktuelle IP-Adresse nicht an DynDNS (oder Andere) melden, sondern an den eigenen Webspace senden.
Serverseitig brauche ich dann nichts weiter als ein Script (in PHP), das den Request auswertet und die IP speichert.
wer Bitte hat oder könnte so ein Script schreiben
Danke im Voraus
Max DDNS
ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke.
Hi,
bitte keine sinnlosen Fullquotes!
Hallo Forum wer kennt ein simples Script für den Webspace.
ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke.
Ja was denn jetzt, willst du was "nachbauen", oder suchst du ein fertiges Script?
Wenn ersteres - dann zeig, was du bisher hast, und wo dein Problem damit liegt.
Wenn zweiteres - beim Suchen hilft eine Suchmaschine.
MfG ChrisB
Hi,
bitte keine sinnlosen Fullquotes!
Hallo Forum wer kennt ein simples Script für den Webspace.
ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke.
Ja was denn jetzt, willst du was "nachbauen", oder suchst du ein fertiges Script?
Wenn ersteres - dann zeig, was du bisher hast, und wo dein Problem damit liegt.
Wenn zweiteres - beim Suchen hilft eine Suchmaschine.
MfG ChrisB
<?php
$name = 'daten.txt'; // file for datastoring
$reloadlock = 0; // ReloadLoggingLock. If activated counter does not increase if reloading $useronlinetime = 1000; // Set the range in seconds while a user is regarded as online
$splitmode = 1; // Enable split mode to avoid getting a huge datastoringfile. Make sure that chmod 777 is set on the whole directory! $splitsize = 500000; // Split datastoringfile when splitsize (bytes) has been reached
$showcounter = 1; // Show visits $showdayvisits = 1; // Show visits per day $showlastvisit = 1; // Show last visit $showyestvisit = 1; // Show visits of yesterday $showbrowsertyp = 1; // Show browsertyp of the user $showip = 1; // Show IP addresse of the user $showdnsn = 1; // Show DNS name of the user $showuseronline = 1; // Show useronline $hidecounter = 1; // Makes the counter invisible $show_average_users_day = 1; // Show average users per day $show_average_users_month = 1; // Show average users per month
// END CONFIGUARATION
// Get global variables (command >= PHP 4.23)
$action = $_GET['action']; if ($action == 'html') {$showhtml = TRUE; }
$agent = getenv("HTTP_USER_AGENT");
// CREATE FILE
if ( file_exists( $name) == FALSE) {
$didmakefile = TRUE;
$file = fopen($name, "w"); if($file) {
fputs($file, "0#########"); fputs($file, "\r\n"); fputs($file, "\r\n");
fclose($file); } }
// END CREATE FILE
// RELOAD PROTECTION AND COUNTING LOOP
$dayusers = -3; $useronline = 1; $visitsaday = 1; $ipok = 1; $datum = date("d.m.Y"); $datumyester = $last_week = date("d.m.Y", mktime(0,0,0, date(m), date(d)-1,date(Y)));
if(getenv("HTTP_CLIENT_IP")) { $ipad = getenv("HTTP_CLIENT_IP"); } elseif(getenv("HTTP_X_FORWARDED_FOR")) { $ipad = getenv("HTTP_X_FORWARDED_FOR"); } else { $ipad = getenv("REMOTE_ADDR"); } $ipad = substr($ipad, 0,14);
// DATAFILE2SPLIT INSERT
if (filesize ($name) >= $splitsize && $splitmode == 1)
{
$file = fopen ($name, "r"); while (!feof($file)) { $i++; $buffer = fgets($file); if ($i == 1 ) {$countrebuild = $buffer; } $fsarray[$i] = $buffer; } fclose($file);
$nettoarray = sizeof($fsarray); $divarrays = floor($nettoarray/2);
$layout = array_slice ($fsarray, 1, $divarrays); $layin = array_slice ($fsarray, $divarrays, $divarrays);
for ($i = 1; $i <= sizeof($layin); $i++) { $layin[$i]; $layinF .= $layin[$i]; }
for ($i = 1; $i <= sizeof($layout); $i++) { $layoutF .= $layout[$i]; }
$datumB = date("d-m-y-H-i");
$fileB = fopen ('Router_Auswertung'.$datumB.'.txt', "w"); fputs($fileB, $layoutF); fclose($fileB);
$file = fopen ($name, "w"); fputs($file, trim($countrebuild)); fputs($file, "\r\n"); fputs($file, "\r\n"); fputs($file, $layinF); fclose($file);
}
// END DATAFILE2SPLIT INSERT
$file = fopen ($name, "r"); while (!feof($file)) { $buffer = fgets($file);
// USRERONLINE INSTERT
if (strpos($buffer, 'T') == 15 ) {
$dayof = substr($buffer, 21,2); $monthof = substr($buffer, 24,2); $yearof = substr($buffer, 27,4);
$hourof = substr($buffer, 34,2); $minof = substr($buffer, 37,2); $secof = substr($buffer, 40,2);
$timerec = mktime($hourof, $minof, $secof , $monthof, $dayof, $yearof); $realtime = time();
if (($realtime-$timerec) <= $useronlinetime) { if (strpos($buffer, $ipad) == false) {$useronline++;}} // refresh-counting protection
}
// END USRERONLINE INSTERT
// DAYCOUNTER INSTERT
if ($buffer <> '' ) {$lastline = $buffer;} if (strpos($buffer, $datum) <> false) { if (strpos($buffer, $ipad) <> false) {$ipok = 0;} if (strpos($buffer, $ipad) == false) {$visitsaday++;} }
if (strpos($buffer, $datumyester) <> false) {$visitsyester++; }
// END DAYCOUNTER INSTERT
// RELATIVE COUNTING INSERT
$dayusers++;
if ($oneoftwo == FALSE) { if ($sameday <> $dayof) {$days++;} if ($samemonth <> $monthof) {$months++;} $sameday = $dayof; $samemonth = $monthof; $oneoftwo = TRUE; }
else { if ($sameday <> $dayof) {$days++;} if ($samemonth <> $monthof) {$months++;} $sameday = $dayof; $samemonth = $monthof; $oneoftwo = FALSE; }
}
if ($didmakefile == FALSE) { $average_users_day = round(($dayusers/$days),0); $average_users_month = round(($dayusers/$months),0); } else { $average_users_day = 0; $average_users_month = 0; }
// END RELATIVE COUNTING INSERT
fclose ($file);
// HTML LIST OUTPUT
if ($showhtml) {
$bgs = 0;
echo '<html> <head> <title>Auswertung</title>
<style type="text/css"> <!-- td { font-family : verdana, arial; font-size : 11px; color : #000000; } //--> </style> </head> <body> (please wait while loading...)<br><br> <table border="0" cellpadding="0" cellspacing="2" width="1800"> <tr> <td width="75"><b>Visitor</b></td> <td width="129"><b>Time</b></td> <td width="100"><b>Router-IP</b></td> <td width="300"><b>DNS-NAME</b></td> <td width="590"><b>Browser</b></td> <td width="400"><b>Referer</b></td> </tr> <table>';
$file = fopen ($name, "r");
$buffer = fgets($file, 4096);
while (!feof($file)) { $hr++;
$buffer = fgets($file, 4096);
if ($hr > 1 )
{
if ($bgs == 0 ) {$BGC = '#eaeaea'; $BGC2 = '#d4d4d4'; $bgs = 1; } else { $BGC = '#ffffff'; $BGC2 = '#e9e9e9'; $bgs = 0; }
$buffer= eregi_replace("<", " ", $buffer); $buffer= eregi_replace(">", " ", $buffer);
echo '<table border="0" cellpadding="0" cellspacing="2" width="1800"> <tr>';
$f1 = substr($buffer, 2,13); echo '<td width="85" bgcolor='.$BGC.'>'.$f1.'</td>';
$f2 = substr($buffer, 23,24); echo '<td width="129" bgcolor='.$BGC2.'>'.$f2.'</td>';
$f3 = trim(substr($buffer, 51,18)); echo '<td width="100" bgcolor='.$BGC.'>'.$f3.'</td>';
$f4 = trim(substr($buffer, 79,47)); echo '<td width="300"bgcolor='.$BGC2.'>'.$f4.'</td>';
$f5 = substr($buffer, 127,92); echo '<td width="590"bgcolor='.$BGC.'>'.$f5.'</td>';
$f6 = substr($buffer, 225,strlen($buffer));
if (strlen($f6) >= 5 ) { $f6b = $f6; if (strlen($f6) >= 75 ) { $f6 = substr($f6, 0, 75); $f6 = $f6.'<b>...</b>'; } echo '<td width="400" bgcolor='.$BGC2.'><a href="'.$f6b.'" target="_new">'.$f6.'</a></td>'; } else { echo '<td width="400" bgcolor='.$BGC2.'></td>';}
echo '</tr></table>'; } } fclose ($file); echo '<br>Users: ';
}
// END HTML LIST OUTPUT
// WRITE COUNTERVALUE
$file = fopen($name, "r+"); $count = fgets($file, 4096); $count = trim($count);
if ($ipok == 1) { $count = $count+1;} $count = $count+0;
rewind($file);
if ($showhtml == FALSE ) { fputs($file, $count); }
fclose($file);
if ($showhtml == FALSE ) {
// END WRITE COUNTERVALUE
// LOGGING
if ($reloadlock == 0) { $ipok = 1;}
if ($ipok == 1) {
$datum =date("d.m.Y - H:i:s ");; $from = $HTTP_REFERER; $dns = @gethostbyaddr($ipad); if ($dns == '') {$dns = @gethostbyaddr(getenv("REMOTE_ADDR"));}
if ($from == '') {$from = '';}
$lange = strlen($ipad);
for ($i = 1; $i <= (16-$lange); $i++) { $leer= $leer." "; }
$lange = strlen($agent); if (strlen($agent) > 90 ) { $agent = substr($agent, 0,90); }
if ($lange < 91) { for ($i = 1; $i <= (90-$lange); $i++) { $leer2= $leer2." "; } }
$lange = strlen($dns); if (strlen($dns) > 46 ) { $dns = substr($dns, 1,46); }
if ($lange < 47) { for ($i = 1; $i <= (46-$lange); $i++) { $leer3= $leer3." "; } }
// MAKE ZEROS
for ($i = 1; $i <= 10-strlen($count); $i++) { $null = $null.'0'; }
$zeile= "# $null$count - TIME: $datum IP: $ipad $leer DNS-Name: $dns $leer3 $agent $leer2 FROM: $from";
$file = fopen($name, "a"); if($file) {
fputs($file, $zeile); fputs($file, "\r\n"); fclose($file); } } }
// END LOGGING
// OUTPUT THE COUNTERVALUES
if ($showhtml) { $hidecounter = 0; $showcounter = 1; $showdayvisits = 1; $showlastvisit = 1; $showyestvisit = 1; $showbrowsertyp = 1; $showip = 1; $showdnsn = 1; $showuseronline = 1; $show_average_users_day = 1; $show_average_users_month = 1; }
if ($hidecounter == 0 ) {
if ($showcounter == 1) { echo $count;} if ($showdayvisits == 1) { echo ' - '.$visitsaday.' today';} if ($showyestvisit == 1) { echo ' - '.$visitsyester.' yesterday';} if ($showlastvisit == 1) { echo ' - last visit '.substr($lastline,33,6);} if ($showdnsn == 1) { echo ' - Your DNS: '.@gethostbyaddr(getenv("REMOTE_ADDR"));} if ($showip == 1) { echo ' - Your IP: '.$ipad;} if ($showbrowsertyp == 1) { echo ' - Your Browsertyp: '.$agent;} if ($showuseronline == 1) { echo ' - '.$useronline.' user online';} if ($show_average_users_day == 1) { echo ' - '.$average_users_day.' average per day';} if ($show_average_users_month == 1) { echo ' - '.$average_users_month.' average per month';}
Hi,
bitte keine sinnlosen Fullquotes!
Was daran hast du nicht verstanden?
Also ich empfang den router hiermit nicht
Diese (zu „funzt nich” äquivalente) Aussage plus hingeklatschter Code gelten hier auch nicht als brauchbare Problembeschreibung.
MfG ChrisB
Hi,
bitte keine sinnlosen Fullquotes!
Was daran hast du nicht verstanden?
Also ich empfang den router hiermit nicht
Diese (zu „funzt nich” äquivalente) Aussage plus hingeklatschter Code gelten hier auch nicht als brauchbare Problembeschreibung.
MfG ChrisB
der name der datei ist router.php
---------------------------------
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip;
$handle = fopen("ip.txt", "w+");
fwrite($handle,$ip);
fclose($handle);
?>
----------------------------
im Router habe ich www.meine-url.de/router.php geschrieben
und jetzt sollte das script die ip in ein txt file schreiben.
so kurz und bündig
danke max
Mahlzeit max DDNS Neu Formuliert,
Serverseitig brauche ich dann nichts weiter als ein Script (in PHP), das den Request auswertet und die IP speichert.
wer Bitte hat oder könnte so ein Script schreiben
Ähm, Du selbst? Schließlich geht es Dir - Deiner eigenen Aussage nach - ja darum, so etwas nachzubauen?
Falls Dir auf Deinem Webspace also z.B. PHP zur Verfügung steht, werte einfach die entsprechenden Server-Variablen und ggf. übertragenen Query-Parameter aus und merke Dir die IP des Routers in geeigneter Form (Textdatei, XML-Datei, Datenbank o.ä.).
ps Bitte keine Antworten warum ich nicht diesen oder anderen Dienst nehmen möchte, ganz einfach es ist eine Interresante Sache die es nachzbauen gilt Danke.
Dann bau auch und schnorr's Dir nicht zusammen ...
MfG,
EKKi