felix_se_cat: IP-Adresse Unterschied intern / extern

Hi,

Ich lese mit

$ip=getenv("REMOTE_ADDR");

die IP-Adresse aus. Nun möchte ich aber (da ich das für eine Browserstatistik brauche) unterscheiden zwischen internen und externen IPs. Ich weiß das interne IPs mit 192.168. anfangen.

Wie bekomm ich das hin das ich mit einer IF-Abfrage nach internen IPs abfrage?

Danke für Hilfe
mfg

  1. Hallo felix!

    $ip=getenv("REMOTE_ADDR");
    die IP-Adresse aus. Nun möchte ich aber (da ich das für eine Browserstatistik brauche) unterscheiden zwischen internen und externen IPs. Ich weiß das interne IPs mit 192.168. anfangen.

    Du kannst ja mit preg_match() und nem einfachen regulären Ausdruck prüfen.
    Aber nicht nur 192.168.*.* sind "interne", da gibts noch mindestens einen anderen Block (siehe auch http://www.faqs.org/rfcs/rfc3330.html für Genaueres über "spezielle IP-Adressen").

    MfG
    Götz

    --
    Losung für Montag, 17. Mai 2004
    Warum sprichst du denn, Jakob, und du, Israel, sagst: "Mein Weg ist dem Herrn verborgen, und mein Recht geht vor meinem Gott vorüber"? (Jesaja 40,27)
    Werft euer Vertrauen nicht weg, welches eine große Belohnung hat. (Hebräer 10,35)
    (http://www.losungen.de/heute.php3)
    1. hi!
      Danke für den Tip, haut hin mit preg_match().
      Ich wusste das es mehrere Spezifikationen für "interne" IPs gibt aber ich weiß halt das bei uns nur 192.168.xxx.xxx IPs "intern" sind, deshalb. Aber danke trotzdem für die Seite!

      Mfg

  2. Hallo,
    zuerst einaml gibt es auch andere internet ips 10.11. ...
    Aber zu deinem problem, ganz einfach mit ner regular expression

    if ($ip = preg_match("/192.168.([1-9][0-9]{1,2}){2}))
    {
       local
    }
    else
    {
        nicht lokal
    }

    reg ex ist ungetestet aber denk das sollt so hinhauen, wie gesagt es gibt auch noch andere lokale ips, fuer die man dann ggf. auch noch eine reg ex schreiben muss.

    Uli