web-dev-qa-db-fra.com

Comment obtenir l'adresse MAC du client utilisant PHP?

Comment puis-je obtenir une adresse MAC en utilisant PHP ou en javascript ...

37
kim edgard

Vous pouvez obtenir l'adresse MAC du client en javascript, s'ils exécutent Windows et vous permettent d'installer un contrôle ActiveX.

http://www.eggheadcafe.com/community/aspnet/3/10054371/how-to-get-client-mac-address.aspx

http://codingresource.blogspot.com/2010/02/get-client-mac-address-ip-address-using.html

0
Patrick Fisher

L'adresse MAC (l'adresse de l'interface de réseau local de bas niveau) ne survit pas Hops via des routeurs IP. Vous ne pouvez pas trouver l'adresse MAC du client à partir d'un serveur distant.

Dans un sous-réseau local, les adresses MAC sont mappées sur des adresses IP via le système ARP. Les interfaces du réseau local savent comment mapper les adresses IP en adresses MAC. Cependant, lorsque vos paquets ont été routés sur le sous-réseau local vers (et à travers) la passerelle vers le "vrai" Internet, l'adresse MAC d'origine est perdue. De manière simpliste, chaque saut de sous-réseau à sous-réseau de vos paquets implique le même type de mappage IP-MAC pour local / routing dans chaque sous-réseau.

35
Pointy
echo GetMAC();

function GetMAC(){
    ob_start();
    system('getmac');
    $Content = ob_get_contents();
    ob_clean();
    return substr($Content, strpos($Content,'\\')-20, 17);
}
8

Utilisez cette fonction pour obtenir l'adresse MAC du client:

function GetClientMac(){
    $macAddr=false;
    $arp=`arp -n`;
    $lines=explode("\n", $arp);

    foreach($lines as $line){
        $cols=preg_split('/\s+/', trim($line));

        if ($cols[0]==$_SERVER['REMOTE_ADDR']){
            $macAddr=$cols[2];
        }
    }

    return $macAddr;
}
5
ram ganesh

Voici une façon possible de le faire:

$string=exec('getmac');
$mac=substr($string, 0, 17); 
echo $mac;

L'idée est d'utiliser la commande cmd ipconfig /all et d'extraire uniquement l'adresse mac.

Quel est son index $ pmac + 33.

Et la taille de mac est de 17.

<?php
ob_start();
system('ipconfig /all');
$mycom=ob_get_contents();
ob_clean();
$findme = 'physique';
$pmac = strpos($mycom, $findme);
$mac=substr($mycom,($pmac+33),17);
echo $mac;
?>
2
mounir