#1 23. September 2008 MAC Adresse auslesen Hy, Ich bin grade dabei Schulnetzwerkintern etwas zu basteln. Erstmal geht es darum, die macadresse des rechners auszulesen (später dann in ne db schreiben), der getmac.php aufruft. in dieser steht derzeit: PHP: <? php function getMac ( $Ip ) { if ( strtoupper ( substr ( PHP_OS , 0 , 3 )) === 'WIN' ) { $output = shell_exec ( "nbtstat -a $Ip " ); $output = explode ( "\n" , $output ); $mac_line = explode ( "=" , $output [ sizeof ( $output )- 3 ]); $sMacAddress = trim ( $mac_line [ 1 ]); } else { $location = ` which arp `; $arpTable = ` $location \n $Ip `; $arpSplitted = split ( "\n" , $arpTable ); foreach ( $arpSplitted as $value ) { $valueSplitted = split ( " " , $value ); foreach ( $valueSplitted as $spLine ) { if ( preg_match ( "/ $Ip /" , $spLine )) { reset ( $valueSplitted ); foreach ( $valueSplitted as $spLine ) { if ( preg_match ( "/[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f]/i" , $spLine )) { $sMacAddress = $spLine ; break; } } } } } } return $sMacAddress ; }print getmac ( $REMOTE_ADDR ); ?> Die Ausgabe ist allerdings die MAC des Proxys in der Schule (auch wenn er in keinem browser der beteiligten pcs eingetragen ist) Verrät mir jemand wo der Fehler ist bzw. Warum nur die proxy-mac rauskommt? (Mir ist bewusst, dass die mac adresse aufm iso-osi Layer ist und php da eigentlich kein Zugriff drauf hat - aber über den arp umweg sollte es doch eigentlich funktionieren?) + Multi-Zitat Zitieren
#2 23. September 2008 AW: MAC Adresse auslesen Vielleicht uebergibst du der Funktion einfach die falsche IP + Multi-Zitat Zitieren
#3 23. September 2008 AW: MAC Adresse auslesen scherzkeks; danke xD Hab auch schon obendrüber (übter print getmac...) $ip=getenv("REMOTE_ADDR"); probiert. Gibt auch einfach die proxy mac aus. Und wenn ich direkt ne IP Übergebe (print getmac('10.34.7.69') gibts gar keine ausgabe mehr.. grüße My-Doom (php noob) + Multi-Zitat Zitieren
#4 23. September 2008 AW: MAC Adresse auslesen was passiert eigentlich wenn du das command selber in die konsole eingibst? vielleicht parst deine Funktion nur den output falsch. + Multi-Zitat Zitieren
#5 23. September 2008 AW: MAC Adresse auslesen wie geb ich so nen command in die konsole ein? (also die funktion) Code: my-doom@try1:~$ php -f /opt/lampp/htdocs/getmac/index.php sh: -n: not found 00:E0:81:4B:3E:A8 aber was an dem -n falsch ist, weiß ich leider nicht. (e: macht man aus dem -n nen \n, gibt er nur noch die (proxy) mac aus= Hilfe ??? + Multi-Zitat Zitieren
#6 23. September 2008 AW: MAC Adresse auslesen Ich nehm mal an du hast die Funktion gar nicht selbst geschrieben Rennt das PHP Script auf ner windows oder einer Linuxkiste? start -> ausfuehren -> cmd, dort nbtstat -a [ip] eingeben. nbtstat gibts nur unter windoof. + Multi-Zitat Zitieren
#7 26. September 2008 AW: MAC Adresse auslesen Läuft derzeit auf beidem. Hauptsächlich soll es aber auf linux laufen bzw. das script liegt auf nem linux server, und die clienten sind sowohl windows, als auch unix user. nbstat kenn ich gar nicht. und auch meine win cmd gibt "unbekannter befehl"(Sinngemäß) aus. update: Hab es ja bis jetzt immer nur mit meinem laptop probiert.. Habs heut in der Schule nochmal auf verschiedenen Rechnern probiert. Ergebnis: Hab auf meinem Ubuntu laptop via lampp nen apache (mit php) emuliert, wo die obe zitierte index.php läuft. Dann zuerst mit nem anderen Schulpc auf dem Suse läuft, das Skript ohne Proxy aufgerufen. Und oh wunder, oh wunder: Es wurde die richtige MAC adresse ausgegeben. Öffne ich jetzt das script von irgendeinem anderen PC (Probiert: Mein Ubuntu Laptop, zwei Schul Windows kisten), gibt das script nur noch die mac des zuerst erwähnten Schul-Suse-Rechners.. :? Update2: getmac($sMacAdrr) macht ja wenig sinn - wenn ich der Funktion des übergebe, was sie selber ausgeben soll.. Deshalb problem nun: getmac($REMOTE_ADDR) gibt keine Ausgabe mehr. Auf keinem pc.. ??? Kann mir hier nicht iiiirgendwer sagen, wie ich über ne scriptsprache, plattformunabhängig, übern browser, die MAC Adrrs des Clients rausfinde, der das script öffnet ?( + Multi-Zitat Zitieren
#8 26. September 2008 AW: MAC Adresse auslesen hab 2 seiten gefunden wobei diese: Mac Adresse auslesen - Seite 2 @ PHP - tutorials.de: Tutorial, Forum, Anleitung & Hilfe auf: MAC-Adresse auslesen per Browser verlinkt. Und in der 2ten steht wohl anscheinend die lösung! gruß gl + Multi-Zitat Zitieren
#9 26. September 2008 AW: MAC Adresse auslesen danke fürs (nochmal) suchen, aber oben steht doch genau diese funktion. Funktionieren tut sie leider nicht. + Multi-Zitat Zitieren
#10 26. September 2008 AW: MAC Adresse auslesen Ich weiss was dein Hauptproblem ist. Die Schulpcs gehen alle ueber einen Proxy. Scheinbar habt ihr einen so genannten transparenten Proxy, der auf dem Gateway laeuft. Sollte dem so sein, hast du wohl Pech. + Multi-Zitat Zitieren