phpbar.de logo

Mailinglisten-Archive

[php] IP + Mac Adress

[php] IP + Mac Adress

Christoph Rust info at webmaster-rust.de
Mit Sep 8 09:28:31 CEST 2004


Da es noch viele gibt, die meinen, das über eine Session oder ein Cookie 
zu lösen, folgendes:

Eine Session, wie auch das Cookie (mit Ausnahme der Lifetime) sind 
temporär und nicht Computerabhängig.
Das heißt, Daten die ich eine Session, bzw. Cookie, schreibe, muss ich 
vorher wissen.
Ich möchte aber einen Art Authentication über IP/Mac haben, da man somit 
z.B. eine Liste (DB, XML, ...) anlegen kann, um User die diese IP/Mac 
haben, Zugriff auf bestimmte Inhalte zu geben.

Dazu folgendes Script:

<Code>
function GetMACAddress($strIP){
   
    exec("{$_ENV["ComSpec"]} /c nbtstat -A $strIP",$output);
    echo "<pre>".print_r($output,true)."</pre>";
    $macaddress = false;
   
    foreach($output as $s){
       
        $data = strtoupper(trim($s));
       
        if (strpos($data,"MAC ADDRESS")!==false){
           
            $t = explode("=",$data);
            $macaddress = trim($t[1]);
            break;
           
        }
       
    }

    return $macaddress;
}

$strIP = $_SERVER["REMOTE_ADDR"];
$strMac = GetMACAddress($strIP);

echo "Your IP is : $strIP<br/>\r\n";
echo "Your MAC is : $strMac\r\n";
</Code>

Das Script nutzt die Kommandozeile um etwas auszuführen, was leider 
nicht so richt bei mir funktionieren will.

Lösungsweg:

Angenommen jemand aus einem Firmennetzwerk geht ins Internet um einen 
Seite aufzurufen.
Dabei geht doch seine Anfrage meist über einen Router. Der Router 
kappselt die Netzwerk-Rechner-IP mit seiner eigenen IP (Einwahl-IP) und 
sendet dieses Paket an den Server. In diesem Paket stehen wie gesagt, IP 
des Routers (bzw. Einwahl-IP) und die IP des lokalen Computers. Daher 
müsste es doch möglich sein, dieses Paket zu entpacken, um die einzelnen 
Bestandteile auszulesen.



php::bar PHP Wiki   -   Listenarchive