eigene IP-Nummer ermitteln
Norbert
- php
Hallo,
wenn man eine PHP-Seite bei einem Hoster aufruft, steht in $_SERVER['REMOTE_ADDR'] die aufrufende IP-Nummer, also die, welche mir die Telekom bei der Einwahl zugewiesen hat. Leider ist mein Hoster ein unzuverlaessiger Billiganbieter, was mich selbst nicht stoert, aber deshalb schlaegt die Abfrage der IP-Adresse oft fehl.
Meine Frage:
Gibt es einen verlaesslichen Service, bei dem ich meine IP-Adresse abfragen kann?
Es geht darum dies ueber die 'REMOTE_ADDR' zu realisieren, um die Verbindng zum Netz zu ueberpruefen, was natuerlich Unfug ist, wenn der Host des oefteren vom Netz geht.
Gruss und Dank
Norbert
Moin Norbert,
Es geht darum dies ueber die 'REMOTE_ADDR' zu realisieren, um die Verbindng zum Netz zu ueberpruefen, was natuerlich Unfug ist, wenn der Host des oefteren vom Netz geht.
Möchtest Du diese IP mit einem Programm auswerten?
Deine aktuelle IP erfährst Du auch in der DOS Box mit:
ipconfig /all
regds
Mike©
Hallo,
Deine aktuelle IP erfährst Du auch in der DOS Box mit:
ipconfig /all
nein, nicht wirklich. Damit erfährst du nur die interne IP deines Rechners im eigenen Netz. Deine öffentliche IP-Adresse, mit der du auch im Internet gesehen wirst, wird nicht vom einzelnen PC verwaltet, sondern vom Router.
Dessen aktuelle IP-Adresse erfährst du aber in der Regel über sein Konfigurations- und Statusmenü.
So long,
Martin
Moin Martin,
nein, nicht wirklich. Damit erfährst du nur die interne IP deines Rechners im eigenen Netz. Deine öffentliche IP-Adresse, mit der du auch im Internet gesehen wirst, wird nicht vom einzelnen PC verwaltet, sondern vom Router.
Dessen aktuelle IP-Adresse erfährst du aber in der Regel über sein Konfigurations- und Statusmenü.
Yep, sorry. Du hast Recht.
regds
Mike©
Hallo Martin,
erfahren kann ich die IP-Nummer auch ueber den Router.
Auf http://192.168.2.1//top_status.stm stehen neben der IP auch DSL-Downstream und DSL-Upstream.
Aber ich will sie ja "von aussen" bekommen, damit ich weiss, dass die DSL-Leitung ok ist.
Gruss und Dank
Norbert
Hallo,
http://www.wieistmeineip.de
Gruß, Don P
Hallo Don,
http://www.wieistmeineip.de
super,
nur wie kann ich die mit PHP auslesen ... :-((
Gruss und Dank
Norbert
Moin Norbert,
super,
nur wie kann ich die mit PHP auslesen ... :-((
Verstehe ich jetzt nicht. Wo hostest Du denn Deine PHP Scripte?
Etwa bei dem besagten Billiganbieter?
In diesem Fall würde das Ganze ja keinen Sinn machen.
Hilf mir mal auf die Sprünge.
regds
Mike©
Hai Mike©,
Hilf mir mal auf die Sprünge.
ok,
gelegentlich setzt hier im Wald die Verbindung teilweise aus. Was eigentlich immer geht, ist der DNS. Deshalb suche ich verlaessliche Methoden um die Verbindung zu testen. Als erstes viel mir dazu dies ein. Dabei msste ich jedoch feststellen, dass die Verfuegbarkeit von uris.de nicht wirklich gut ist. Aber man zahlt bei diesem Provider im Jahr das, was man bei 1&1 im Monat abdruecke muss. Also suche ich Ausweichloesungen. Das Testscript laeuft natuerlich hier local alle 2 min als Cli-PHP-Script unter "geplante Tasks".
Reicht das erst mal, sonst frag einfach ...
Gruss und Dank
Norbert
Moin Norbert,
gelegentlich setzt hier im Wald die Verbindung teilweise aus. Was eigentlich immer geht, ist der DNS. Deshalb suche ich verlaessliche Methoden um die Verbindung zu testen. Als erstes viel mir dazu dies ein. Dabei msste ich jedoch feststellen, dass die Verfuegbarkeit von uris.de nicht wirklich gut ist. Aber man zahlt bei diesem Provider im Jahr das, was man bei 1&1 im Monat abdruecke muss. Also suche ich Ausweichloesungen. Das Testscript laeuft natuerlich hier local alle 2 min als Cli-PHP-Script unter "geplante Tasks".
Aha, lokaler WebServer. Prima.
Ich habe das ganze wie folgt gelöst.
Bei DNIP kostenlos registrieren.
Eines der Update Tools herunterladen und laufen lassen.
Dann mit einem Script die Verfügbarkeit testen.
Nehmen wir an, das Du dir bei DNIP folgende URL registriert hast:
norbert100.dnip.net
dann könnte das Kontroll Script (auf Deinem localhost) so aussehen:
[code lang=php]
<?PHP
$host='norbert100.dnip.net';
$port=80;
$IP=gethostbyname($host);
$starttime=microtime();
$Timestamp_Start=time();
$socket=fsockopen($host,$port);
$endtime=microtime();
$Timestamp_End=time();
$Current_Date=date('d/m/Y');
$Current_Time=date('H:i');
if ( $socket!=false )
{
fclose($socket);
list($msec,$sec)=explode(" ",$starttime);
$starttime=(float)$msec+(float)$sec;
list($msec,$sec)=explode(" ",$endtime);
$endtime=(float)$msec+(float)$sec;
$pingtime=($endtime-$starttime)*1000;
$Seconds=$Timestamp_End-$Timestamp_Start;
}
else
{
$pingtime=-1;
}
if ( $pingtime != -1 )
$Ping_String=sprintf("%s | %s | %s | %d sec | %0.2f ms |\r\n",$Current_Date,$Current_Time,$IP,$Seconds,$pingtime );
else
$Ping_String=sprintf("%s | %s | No connect\r\n",$Current_Date,$Current_Time);
$pointer=fopen("c:/daten/WebServer_Logs/ping_log.txt","a");
if ( $pointer)
{
fwrite($pointer,$Ping_String);
fclose($pointer);
}
?>
[/code
regds
Mike©
Moin Mike©,
also ich treibe da etwas mehr Aufwand:
1. den DNS-Cache leeren
2. die IP-Nummer von Google ermitteln
Die Wahrscheinlichkeit, dass Google tot ist, ist gering (IMHO)
3. meinen Router auslesen, IP, Up- und Downstream
4. irgendwoher die eigene IP holen, jetzt von hier
bleibt zu hoffen, dass der Host verlaesslich ist
Die IP parse ich aus dem HTML-Code wie folgt:
<?php
$line = file_get_contents('http://www.wieistmeineip.de');
$AA = explode('<h1 class="ip">', $line);
if (isset($AA[1])) {
$line = $AA[1];
$AA = explode('</h1>', $line);
$IPnr = $AA[0];
}
?>
Wenn man die Datei via file_get_contents() holt, sendet der Server
einen gringfuegig anderen Quellcode, als wenn man mit dem Browser
vorbei schaut.
War also gar nicht so schlimm ... :)
Gruss und Dank
Norbert