Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: ‭lipman en 4 Junio 2009, 12:07 PM

Título: Obtener la MAC
Publicado por: ‭lipman en 4 Junio 2009, 12:07 PM
Hay alguna forma de obtener la MAC del visitante?  :huh: :huh:

Saludoss
Título: Re: Obtener la MAC
Publicado por: Spider-Net en 4 Junio 2009, 12:23 PM
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.
Título: Re: Obtener la MAC
Publicado por: ‭lipman en 4 Junio 2009, 12:55 PM
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
Título: Re: Obtener la MAC
Publicado por: дٳŦ٭ en 4 Junio 2009, 17:19 PM
mmm sí... php es de lado server. Busca algo hecho en java (no js), seguro hay pero es violar la privacidad...
Título: Re: Obtener la MAC
Publicado por: invisible_hack en 4 Junio 2009, 19:44 PM
É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.
Título: Re: Obtener la MAC
Publicado por: [u]nsigned en 4 Junio 2009, 20:05 PM
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
Título: Re: Obtener la MAC
Publicado por: дٳŦ٭ en 4 Junio 2009, 20:12 PM
[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???
Título: Re: Obtener la MAC
Publicado por: -Ramc- en 4 Junio 2009, 20:15 PM
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
Título: Re: Obtener la MAC
Publicado por: [u]nsigned en 4 Junio 2009, 20:44 PM
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
Título: Re: Obtener la MAC
Publicado por: Spider-Net en 4 Junio 2009, 21:55 PM
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!
Título: Re: Obtener la MAC
Publicado por: Nakp en 4 Junio 2009, 22:02 PM
Para eso se ejecuta arp con shell_exec()

Citar
Código (php) [Seleccionar]
// Get the arp executable path
$location = `which arp`;
// Execute the arp command and store the output in $arpTable
$arpTable = `$location`;

http://es.wikipedia.org/wiki/Address_Resolution_Protocol

;)
Título: Re: Obtener la MAC
Publicado por: ‭lipman en 4 Junio 2009, 22:03 PM
wtf? He buscado y mirado en la pagina de php y no me he enterado de nada, wtf es shell_exec y para que se usa?

Otra cosa, la pagina que has puesto me devuelve un error:

"Warning: shell_exec() has been disabled for security reasons in /home/a1721042/public_html/prueba/mac.php on line 12"
Título: Re: Obtener la MAC
Publicado por: [u]nsigned en 4 Junio 2009, 22:11 PM
Cita de: lipman en  4 Junio 2009, 22:03 PM
wtf? He buscado y mirado en la pagina de php y no me he enterado de nada, wtf es shell_exec y para que se usa?

Otra cosa, la pagina que has puesto me devuelve un error:

"Warning: shell_exec() has been disabled for security reasons in /home/a1721042/public_html/prueba/mac.php on line 12"

shell_exec —> Ejecutar un comando mediante el intérprete de comandos y devolver la salida completa como una cadena.

Esto es mas una 'mini-discusion' que se armo... ;D

Pero el temas es que a menos que tengas un server dedicado (o uses tu propia pc como server) no podras hacerlo mediante PHP

Saludos
Título: Re: Obtener la MAC
Publicado por: дٳŦ٭ en 5 Junio 2009, 00:41 AM
Cita de: Nakp en  4 Junio 2009, 22:02 PM
Para eso se ejecuta arp con shell_exec()

Citar
Código (php) [Seleccionar]
// Get the arp executable path
$location = `which arp`;
// Execute the arp command and store the output in $arpTable
$arpTable = `$location`;

http://es.wikipedia.org/wiki/Address_Resolution_Protocol

;)

OK, no lo veo en el código.  :huh: (la función...).

No, no es desafiarme.. naaaaa... que va, solo que no veo la función.
Título: Re: Obtener la MAC
Publicado por: Nakp en 5 Junio 2009, 00:43 AM
es una especie de scriptkiddie :xD reemplaza comentarios por lo que pide el comentario
Título: Re: Obtener la MAC
Publicado por: [u]nsigned en 5 Junio 2009, 00:51 AM
Cita de: Nakp en  5 Junio 2009, 00:43 AM
es una especie de scriptkiddie :xD reemplaza comentarios por lo que pide el comentario


¿? eso a que viene?
Título: Re: Obtener la MAC
Publicado por: Spider-Net en 5 Junio 2009, 08:21 AM
Cita de: дٳŦ٭ en  5 Junio 2009, 00:41 AM
Cita de: Nakp en  4 Junio 2009, 22:02 PM
Para eso se ejecuta arp con shell_exec()

Citar
Código (php) [Seleccionar]
// Get the arp executable path
$location = `which arp`;
// Execute the arp command and store the output in $arpTable
$arpTable = `$location`;

http://es.wikipedia.org/wiki/Address_Resolution_Protocol

;)

OK, no lo veo en el código.  :huh: (la función...).

No, no es desafiarme.. naaaaa... que va, solo que no veo la función.

No ves la función shell_exec() porque no está escrita explícitamente. Pero si te das cuenta esos comandos están escritos entre las comillas ``, que no son las comillas normales. Según tengo entendido lo que se escribe entre las comillas `` es ejecutado directamente y por eso no ves la función shell_exec().

Un saludo.
Título: Re: Obtener la MAC
Publicado por: [u]nsigned en 5 Junio 2009, 19:30 PM
Justamente por eso puse el link a mi a mi free host, para mostar que si se usa shell_exec  ;D

Otra cosa, aunque se puediera conseguir la MAC del visitante, esto tampoco es infalible, dado que esta puede ser cambiada desde el S.O. Al menos en linux..

Saludos
Título: Re: Obtener la MAC
Publicado por: ‭lipman en 5 Junio 2009, 20:10 PM
WTF, no me entero de nada xD

Aver, dices que el codigo ese funciona si activas shell_exec? y te sacará la mac? Como se activa?
Título: Re: Obtener la MAC
Publicado por: [u]nsigned en 5 Junio 2009, 20:24 PM
Cita de: lipman en  5 Junio 2009, 20:10 PM
WTF, no me entero de nada xD

Aver, dices que el codigo ese funciona si activas shell_exec? y te sacará la mac? Como se activa?

Para eso nesesitas tener un host dedicado, osea un server para vos solo. Activar el shell_exec es permitirle a php ejecutar comandos del sistema, y eso vulneraria a todos los demas usuarios del host, incluso si fuera de pago no creo que te dejen.

Otra cosa, este codigo parece no funcionar en modo local (localhost)..sera por que el loopback-ip no devuelte algun dato necesario...xD tanto no entiendo de esto...