Obtener la MAC

Iniciado por ‭lipman, 4 Junio 2009, 12:07 PM

0 Miembros y 2 Visitantes están viendo este tema.

‭lipman

Hay alguna forma de obtener la MAC del visitante?  :huh: :huh:

Saludoss

Spider-Net

PHP se ejecuta del lado del servidor, no creo que puedas acceder a los datos del PC visitante como puede ser la MAC, a parte sería una vulneración de los derechos de privacidad del visitante.

‭lipman

Era por saber si hay alguna funcion, parecida a la de obtener la IP, para la MAC xD pero ya veo que no ^^

Gracias saludos

дٳŦ٭

mmm sí... php es de lado server. Busca algo hecho en java (no js), seguro hay pero es violar la privacidad...


Con sangre andaluza :)


invisible_hack

Ésto me recuerda a la pregunta que hice yo hace tiempo, sobre cómo obtener el nombre del Pc en PHP, y pues algunos dijeron que sí, otros que no, algunos me dijeron que con la variable user se podía, pero probé y nada...

Pues supongo que para el tema de la MAC ocurrirá lo mismo, ya que como han dicho trabajada del lado del server...

Saludos.
"Si no visitas mi blog, Chuck te dará una patada giratoria"

[u]nsigned

Bueno buscando encontre esto:

Código (php) [Seleccionar]

<?
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;
}
?>


Pero necesitas tener un servidor dedicado donde puedas activar shell_exec(). Creo que lo mismo pasa para otros scripts...  :-\

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

дٳŦ٭

[quote author=nsigned link=topic=257012.msg1246626#msg1246626 date=1244138700]
Bueno buscando encontre esto:

Código (php) [Seleccionar]

<?
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;
}
?>


Pero necesitas tener un servidor dedicado donde puedas activar shell_exec(). Creo que lo mismo pasa para otros scripts...  :-\

Saludos
[/quote]

Donde usas shell_exec???


Con sangre andaluza :)


-Ramc-

#7
Con activex creo que se puede, pero, sólo te serviria para IE.

EDIT: Mira: http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/e5c2340e-4bd1-4250-a42a-4fdbf386d87e

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

[u]nsigned

Cita de: дٳŦ٭ en  4 Junio 2009, 20:12 PM

Donde usas shell_exec???

Bueno, yo mismo me puse a probar el script en mi cuenta de free hosting antes de postear:
http://fakx.comyr.com/prueba/mac.php

Igual en el foro de donde saque ese codigo, aclararon ROTUNDAMENTE eso.

Ojo! no pretendo desafiar al MOD ni nada que se le paresca ;D, si estoy en un error gracias por corregirme :-[

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Spider-Net

#9
Lo que yo no me explico es como en el code pretende sacar la MAC a través de la IP  :huh: :huh:

Pero si funciona la verdad es que está muy bien, yo la verdad es que no lo probé...

Saludos!