Tema: Mac Address
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/04/2007, 08:05
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mac Address

Encontre este codigo pero solo funciona en Linux, y el usuario de apache necesita permisos para utilizar arp y wich:
Código 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;

Fuente:
http://forums.devarticles.com/genera...ress-1846.html

Solo funciona en intranet no en internet.