Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 427388
            [titulo] => Mac Address capturado via PHP   MITO OU VERDADE?
            [dataCadastro] => DateTime Object
                (
                    [date] => 2012-10-27 15:23:47
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 317595
            [status] => A
            [isExample] => 
            [NomeUsuario] => Marcos Paulo F Guedes
            [Apelido] => 
            [Foto] => 
            [Conteudo] => PHP roda no servidor, ipconfig /all, retorna as informações do servidor php e se for windows...
        )

)

Mac Address capturado via PHP MITO OU VERDADE?

PHP
Eduardo
   - 24 out 2012

Boa noite;
tenho visto muito pela net algumas funções que prometem pegar o endereço mac do usuário via PHP sobretudo através de variáveis $mac.
Já vi também outras pessoas falarem nos fóruns que isso só é possivel através através de uma App Java, mas pelo que tive lendo a respeito de fazer com Java, é uma coisa bastante complexa, e nem sem por onde começar ´pra ser sincero a voçês rsrsrs.
Enfim, andei testando algumas funçõeszinhas PHP dessas no Wamp Server com envio de email por formulário afim de pegar o Mac da placa de rede do pc do usuário para fazer um controle de segurança em meu site, mas quando checo o emaail, não vem nada ao lado de Mac Address = cadê o Mac!!?
Em outras que testei, analisando o descrito no final da linha acima, chega é uma "codificação" de bug (no lugar que era pra aparecer o Mac). Detalhe: veio com o nome bug mesmo entre a codificação, indicando que houve de fato um bug.
Está foi uma das que usei
#Código
<?php
/*
* Getting MAC Address using PHP
* Md. Nazmul Basher
*/
ob_start(); // Turn on output buffering
system(‘ipconfig /all’); //Execute external program to display output
$mycom=ob_get_contents(); // Capture the output into a variable
ob_clean(); // Clean (erase) the output buffer
$findme = “Physical”;
$pmac = strpos($mycom, $findme); // Find the position of Physical text
$mac=substr($mycom,($pmac+36),17); // Get Physical Address
echo $mac;
?>
Cheguei a pensar até que este problema seja porque eu to testando o envio de emais através de um Localhost (WampServer), e quando eu subir o site isso deixará de acontecer (se é que realmente essas funções funcionam).

Faz sentido isso que estou imaginando? o que vocês acham pessoal?
Forte abraço! e muito obrigado pela ajuda.

Post mais votado

Marcos Guedes
   - 27 out 2012

PHP roda no servidor, ipconfig /all, retorna as informações do servidor php e se for windows...

Eduardo Oliveira
   - 25 out 2012

Mas qual a necessidade de se obter informação de tão baixo nível(informação de hardware)com o intuito de controlar a segurança???
Acredito que dependendo do contexto deve haver uma forma mais simplificada pra resolver isso.

Eduardo
   - 27 out 2012


Citação:
PHP roda no servidor, ipconfig /all, retorna as informações do servidor php e se for windows...


Então não tem como pegar o mac via formulário de contato num é? teria alguma solução que desse certo?

obrigado valeu!!

Eduardo
   - 27 out 2012


Citação:
PHP roda no servidor, ipconfig /all, retorna as informações do servidor php e se for windows...


Então não tem como pegar o mac via formulário de contato num é? teria alguma solução que desse certo?

obrigado valeu!!

Eduardo Oliveira
   - 28 out 2012

Da uma olhada nesse comando, veja se pode ajudar

http://php.net/manual/pt_BR/function.shell-exec.php

Luan Monteiro
   - 31 out 2013

Olha a Função que criei funciona apenas em intranet até onde eu testei

//Verifica o Proxy e retorna o ip real
function getRealIPAddress(){

if(!empty($_SERVER['HTTP_CLIENT_IP'])){
//check ip from share internet
$ip = $_SERVER['HTTP_CLIENT_IP'];
}else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
//to check ip is pass from proxy
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;

}

//retorna nome da máquina remota pelo IP
function NomeMaquinaRem(){

$Nome = gethostbyaddr(getRealIPAddress());
return $Nome;

}

//Mac da Máquina remota conectada
function MacAdressByWindows(){

$ipAddress = getRealIPAddress();

#run the external command, break output into lines
exec("arp -a $ipAddress", $output);
$IpMac = explode(" ", trim($output[3]));
return $IpMac[11];

}

Roniere Almeida
   - 01 nov 2013

desconhecia essa funcionalidade no php. legal.

Marcio Araujo
   - 01 nov 2013

interessante isso.

Fernando Alves
   - 16 ago 2016

Tenho um sistema que é acessado por Celular e entre outras plataformas de sistemas operacionais, essa função também é valida ?