Obtener la mac address con php

Imagen de nino1511

Forums: 

Estimados

Me me han pedido realizar el siguiente trabajo que obtenga la mac addreess, dns, dns reverse, nombre del host, ip address (sea local o pública), etc. Sin mayores problemas consigo todo menos la mac address del equipo que ingresa a la página.

Dicha página esta montada sobre php + apache + mysql, solo falta la mac, que esta mac sea donde sea que se encuentre almacenarla.

Alguna pista.

Saludos

pues creo que con una llamada

Imagen de deathUser

pues creo que con una llamada system y usando el comando arp podrías tener dicha MAC si es que el dispositivo se encuentra en el mismo segmento de RED, si no, no creo que exista la posibilidad de obtenerla.

bye
;)

Hay este código escrito por

Imagen de elhumano

Hay este código escrito por Michael Stankiewicz que se lo puede encontrar publicado en muchos sitios:
lo pego a continuación:

<?php
function returnMacAddress() {
// This code is under the GNU Public Licence
// Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
// Tested only on linux, please report bugs

// WARNING: the commands 'which' and 'arp' should be executable
// by the apache user; on most linux boxes the default configuration
// should work fine

// Get the arp executable path
$location = `which arp`;

// Execute the arp command and store the output in $arpTable
$arpTable = `$location`;

// Split the output so every line is an entry of the $arpSplitted array
$arpSplitted = split("\n",$arpTable);

// Get the remote ip address (the ip address of the client, the browser)
$remoteIp = $GLOBALS['REMOTE_ADDR'];

// Cicle the array to find the match with the remote ip address
foreach ($arpSplitted as $value) {

// Split every arp line, this is done in case the format of the arp
// command output is a bit different than expected
$valueSplitted = split(" ",$value);
foreach ($valueSplitted as $spLine) {
if (preg_match("/$remoteIp/",$spLine)) {
$ipFound = true;
}

// The ip address has been found, now rescan all the string
// to get the mac address
if ($ipFound) {
// Rescan all the string, in case the mac address, in the string
// returned by arp, comes before the ip address
// (you know, Murphy's laws)
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)) {
return $spLine;
}
}
}
$ipFound = false;
}
}
return false;
}

?>