oscha Geschrieben 27. September 2004 Geschrieben 27. September 2004 Hallo, gibt es eine Möglichkeit die MAC-Adresse per Browser auszulesen? Vielleicht mit Java/JavaScript? Ist für ein Intranet gedacht, keine Router etc. dazwischen. Gruß oscha Zitieren
kLeiner_HobBes Geschrieben 27. September 2004 Geschrieben 27. September 2004 IMHO nicht. Seh es grad nicht in den Umgebungsvariablen. Und man kann, glaub ich, auch nicht per JS auf die Registry zugreifen. Du könntest, da du von einem Intranet sprichst und vorausgesetzt, es ist eine homogene Browserlandschaft, ein ActiveX-Modul schreiben. Das könnte eventuell gehen. Zitieren
kills Geschrieben 27. September 2004 Geschrieben 27. September 2004 Hallo, gibt es eine Möglichkeit die MAC-Adresse per Browser auszulesen? Vielleicht mit Java/JavaScript? Ist für ein Intranet gedacht, keine Router etc. dazwischen. Gruß oscha Bei einem Windows Webserver Würde ich einfach zuerst den client anpingen und dann per "arp" die macadresse holen. Wie die Equivalenten *nix Befehle dazu sind weiss ich leider nicht. Zitieren
kLeiner_HobBes Geschrieben 27. September 2004 Geschrieben 27. September 2004 Heißen genauso. Deine Lösung muß dann halt schon serverseitig laufen, so daß dem Client die Adresse schon mitgegeben wird. Zitieren
kills Geschrieben 27. September 2004 Geschrieben 27. September 2004 Heißen genauso. Deine Lösung muß dann halt schon serverseitig laufen, so daß dem Client die Adresse schon mitgegeben wird. jo PHP läuft meines Wissens auf Serverseite :floet: einfach per $_SERVER['REMOTE_ADDRR'] anpingen in arp nachsehen auslesen und freuen Zitieren
kLeiner_HobBes Geschrieben 27. September 2004 Geschrieben 27. September 2004 jo PHP läuft meines Wissens auf Serverseite :floet: Den Hinweis gab ich vor allem dem Threadersteller, da dieser eher an eine clientseitige Lösung dachte: gibt es eine Möglichkeit die MAC-Adresse per Browser auszulesen? [..] Zitieren
etreu Geschrieben 27. September 2004 Geschrieben 27. September 2004 Wofür brauchst du denn die MAC? Zitieren
oscha Geschrieben 28. September 2004 Autor Geschrieben 28. September 2004 Enrico T.: diese brauche ich, damit die user bei freischaltung für's inet im dhcp eine fest IP eingetragen bekommen. so sehen sie die adresse sofort und können diese einfacher mitteilen. An die anderen Freaks : kann mir jemand einen denkanstoss geben??? habe Win32 als Serverplattform. 1. IP bekomme ich mit PHP heraus 2. "arp -a" auf dem server ausführen klappt auch, die ausgabe erscheint <?php system("arp -a"); ?>[/PHP] 3. Wie vergleiche ich mit PHP die Ausgabe von arp -a mit der dazugehörigen IP? 4. Ausgabe sollte wieder einfach gehen Zitieren
kills Geschrieben 28. September 2004 Geschrieben 28. September 2004 <?php function getMacFromIp( $sIP) { system("arp -a ". $sIP, $ret); foreach ( $ret as $line) { if ( strpos( $line, $sIP) !== false) { return trim(explode( " ", $line)[3]); } } ?> [/PHP] versuch ma so Zitieren
oscha Geschrieben 28. September 2004 Autor Geschrieben 28. September 2004 <?php $sIP = getenv("REMOTE_ADDR"); system("arp -a ". $sIP, $ret); foreach ( $ret as $line) { if ( strpos( $line, $sIP) !== false) { trim(explode( " ", $line)[3]); } ?>[/PHP] Parse error: parse error, unexpected '[' in D:\WAMP\_httproot\mac.php on line 7 Zitieren
kLeiner_HobBes Geschrieben 28. September 2004 Geschrieben 28. September 2004 if (strpos($line,$sIP) !== false) { $cols = explode(" ",$line); return trim($cols[3]); }[/PHP] Zitieren
oscha Geschrieben 28. September 2004 Autor Geschrieben 28. September 2004 ich steig irgendwie nicht ganz dahinter.... <?php $ip = getenv("REMOTE_ADDR"); system("arp -a $ip"); if (strpos($line,$ip) != false) { $cols = explode(' ',$line); trim($cols[3]); } ?>[/PHP] Parse error: parse error, unexpected $end in D:\WAMP\_httproot\mac.php on line 9 Zitieren
kLeiner_HobBes Geschrieben 28. September 2004 Geschrieben 28. September 2004 <?php $sIP = getenv("REMOTE_ADDR"); system("arp -a ".$sIP, $ret); foreach ( $ret as $line) { if (strpos($line,$sIP) !== false) { $cols = explode(" ",$line); return trim($cols[3]); } } ?> [/PHP] Du hast das foreach() ausgelassen Zitieren
oscha Geschrieben 28. September 2004 Autor Geschrieben 28. September 2004 Folgende Fehlermeldung erscheint nu: Schnittstelle: 192.168.99.254 --- 0x2 Internetadresse Physikal. Adresse Typ 192.168.202.216 00-0b-5d-49-64-c8 dynamisch Warning: Invalid argument supplied for foreach() in D:\WAMP\_httproot\mac.php on line 6 was hat es mit dem $ret auf sich, wenn diese doch gar nicht deklariert sind?!? Zitieren
kLeiner_HobBes Geschrieben 28. September 2004 Geschrieben 28. September 2004 Probiers mal mit exec() anstelle von system(). Zitieren
etreu Geschrieben 28. September 2004 Geschrieben 28. September 2004 1. Die Funktion sieht so aus: string system ( string befehl [, int return_var]) Darum meckert foreach auch, denn es wird ein array erwartet und ein int übergeben. 2. Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie stattdessen die Funktion passthru(). siehe: http://de2.php.net/manual/de/function.system.php Zitieren
kills Geschrieben 29. September 2004 Geschrieben 29. September 2004 1. Die Funktion sieht so aus: string system ( string befehl [, int return_var]) Darum meckert foreach auch, denn es wird ein array erwartet und ein int übergeben. 2. Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie stattdessen die Funktion passthru(). siehe: http://de2.php.net/manual/de/function.system.php sorry, mein fehler! ich hab nochma in meinen archiven gekramt, und das hier gefunden: 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; } [/PHP] Zitieren
oscha Geschrieben 29. September 2004 Autor Geschrieben 29. September 2004 yeah, danke vielmals !!!!!! Zitieren
Mecronomecon Geschrieben 2. März 2013 Geschrieben 2. März 2013 Hallo, endlich mal jemand der zu diesem Problem ein sinnvolles Script hat, danke @ kills Leider funktioniert das ganze bei mir nur im internen LAN, ich benötige es aber um die MAC-Adresse im Internet auszulesen. Folgende Problemstellung..: Für einen Kunden hab ich eine Anwendung zur Gutscheinerfassung und Rabattauszahlung programmiert. Bisher wurden hierfür Gutscheine immer per Post eingesendet und dann durch unsere Mitarbeiter erfasst. Nun wünscht der Kunde aber, dass die Käufer seiner Produkte direkt im Internet Ihre Rabatte anfordern können. Hierfür bin ich nun grade dran die ganze Anwendung etwas umzubauen, so dass der Endkunde im Internet Gutscheincodes von den Produktverpackungen und seine Daten angeben kann und er dann automatisch den Rabatt überwiesen bekommt. Da der Rabatt aber nur ausgezahlt werden soll wenn der Kunde auf ein neues Produkt umsteigt soll sichergestellt sein, dass jeder Kunde nur einmal einen Rabatt anfordern kann. Hierzu sind schon verschiedene Prüfungen eingebaut um den Kunden zu identifizieren (Adresse, Bankverbindung). Da nun aber viele Leute auch mehrere Bankkonten haben und auch bei der Eingabe der Adressen äußerst kreativ sind würde ich als zusätzliche Sicherheit gerne noch eine Prüfung per MAC-Adresse einbauen. Hierzu reicht die Adresse des Hausanschlusses (Router) vollkommen aus. Kennt nun irgendjemand eine Möglichkeit um die MAC über's Internet auszulesen..? Auf irgendeinem Weg muss es ja möglich sein, denn alle Chatbetreiber der Welt führen Benutzersperrungen nicht nur per IP-Adresse oder Benutzernamen, sondern in Extremfällen auch per MAC-Adresse durch. Die Antwort "Geht nicht" könnt Ihr euch also sparen..;-) Bin wirklich dankbar wenn mir hier jemand den entscheidenden Hinweis geben kann. Zitieren
flashpixx Geschrieben 2. März 2013 Geschrieben 2. März 2013 (bearbeitet) Auf irgendeinem Weg muss es ja möglich sein, denn alle Chatbetreiber der Welt führen Benutzersperrungen nicht nur per IP-Adresse oder Benutzernamen, sondern in Extremfällen auch per MAC-Adresse durch. Die Antwort "Geht nicht" könnt Ihr euch also sparen..;-) Geht nicht, siehe MAC-Adresse In jedem Frame nach Ethernet-II-Variante wird vor dem Typfeld und den Daten zunächst die MAC-Adresse des Empfängers und des Senders übertragen. Empfänger und Sender müssen Teil des Local Area Networks (LAN) sein. Soll ein Paket in ein anderes Netz geschickt werden, wird es auf Ethernet-Ebene zunächst an einen Router geschickt. Dieser analysiert die Daten auf der untergeordneten Schicht und vermittelt das Paket dann weiter. Er erzeugt dazu einen neuen Ethernet-Frame, wenn es sich bei dem Nachbarnetz ebenfalls um ein Ethernet handelt. Dazu ersetzt ein Router die MAC-Adressen, d. h. wenn Router R1 ein Ethernet-Frame empfängt und es an den Router R2 weitergeben soll, ersetzt R1 die Quelladresse mit seiner eigenen MAC-Adresse und die Zieladresse mit der Mac-Adresse von R2. Du bekommst zwar eine MAC-Adresse, diese ist aber dann die Adresse des Routers des LANs in dem der Server steht (Details z.B. in den Cisco CCNA Unterlagen) und eine Sperrung auf IP-Ebene ist wohl auch nicht sinnvoll, denn bei den meisten Anbietern wechselt die IP alle 24h bzw. bei einem Reconnect. Eine Sperrung auf IP Ebene macht nur dann Sinn, wenn der User eine statische IP benutzt Bearbeitet 2. März 2013 von flashpixx Zitieren
lotmf Geschrieben 18. März 2013 Geschrieben 18. März 2013 Hallo, info: Die "Chatbetreiber" könnten nur mittels eines Lokal installiertem Client deine Mac Adresse rauskriegen (siehe Post von Flashpixx) und demnach sperren. Wer macht sowas? Und bringt ja auch nichts, kannst ja einfach deine MAC-Adresse ändern. Hatte ich bis jetzt noch nicht gehört.?! Ich behaupte, die MAC-Adresse des Routers reicht NICHT aus. Denn der Kunde kann sich ja hinter einen anderen Router schalten. Gruß, lotmf Zitieren
uenetz Geschrieben 20. März 2013 Geschrieben 20. März 2013 Wie wäre es denn mit einer Lösung mittelt Java - Applet? Hier ein kleines Beispiel: GetMacAddress Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.