web-dev-qa-db-ja.com

PHPを使用してクライアントのMACアドレスを取得する方法は?

PHPまたはjavascript ...を使用してMACアドレスを取得するにはどうすればよいですか...

41
kim edgard

クライアントがWindowsを実行していてActiveXコントロールをインストールできる場合、クライアントのMACアドレスをjavascriptで取得できます。

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

1
Patrick Fisher

MACアドレス(低レベルのローカルネットワークインターフェイスアドレス)は、IPルーターを介したホップに耐えられません。リモートサーバーからクライアントのMACアドレスが見つかりません。

ローカルサブネットでは、ARPシステムを介してMACアドレスがIPアドレスにマッピングされます。ローカルネット上のインターフェイスは、IPアドレスをMACアドレスにマップする方法を知っています。ただし、パケットがローカルサブネット上でゲートウェイを経由して「実際の」インターネットにルーティングされると、発信元MACアドレスは失われます。簡単に言えば、パケットの各サブネットからサブネットへのホップには、各サブネットでのlocalルーティングに対する同じ種類のIP-to-MACマッピングが含まれます。

37
Pointy
echo GetMAC();

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

可能な方法は次のとおりです。

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

この関数を使用して、クライアントのMACアドレスを取得します。

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;
}
3
ram ganesh

アイデアは、コマンドcmd ipconfig /allを使用して、アドレスmacのみを抽出することです。

彼のインデックスは$ pmac + 33です。

また、macのサイズは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
<?php

    ob_start();
    system('ipconfig/all');
    $mycom=ob_get_contents(); 
    ob_clean(); 
    $findme = "Physical";
    $pmac = strpos($mycom, $findme); 
    $mac=substr($mycom,($pmac+36),17);

    echo $mac;
?>

これにより、クライアントマシンのMACアドレスが出力されます

0