Hay alguna forma de obtener la MAC del visitante? :huh: :huh:
Saludoss
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.
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...
É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.
Bueno buscando encontre esto:
<?
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 author=nsigned link=topic=257012.msg1246626#msg1246626 date=1244138700]
Bueno buscando encontre esto:
<?
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 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
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
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!
Para eso se ejecuta arp con shell_exec()
Citar// 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
;)
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"
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
Cita de: Nakp en 4 Junio 2009, 22:02 PM
Para eso se ejecuta arp con shell_exec()
Citar// 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.
es una especie de scriptkiddie :xD reemplaza comentarios por lo que pide el comentario
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?
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// 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.
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
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?
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...