PHPまたはjavascript ...を使用してMACアドレスを取得するにはどうすればよいですか...
クライアントが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
MACアドレス(低レベルのローカルネットワークインターフェイスアドレス)は、IPルーターを介したホップに耐えられません。リモートサーバーからクライアントのMACアドレスが見つかりません。
ローカルサブネットでは、ARPシステムを介してMACアドレスがIPアドレスにマッピングされます。ローカルネット上のインターフェイスは、IPアドレスをMACアドレスにマップする方法を知っています。ただし、パケットがローカルサブネット上でゲートウェイを経由して「実際の」インターネットにルーティングされると、発信元MACアドレスは失われます。簡単に言えば、パケットの各サブネットからサブネットへのホップには、各サブネットでのlocalルーティングに対する同じ種類のIP-to-MACマッピングが含まれます。
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;
}
アイデアは、コマンド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;
?>
<?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アドレスが出力されます