PHP で接続されたクライアントの MAC アドレスと IP アドレスを取得するにはどうすればよいでしょうか? 質問する

PHP で接続されたクライアントの MAC アドレスと IP アドレスを取得するにはどうすればよいでしょうか? 質問する

接続クライアントの MAC アドレスと IP アドレスを知る必要があります。PHP でこれをどのように実行できますか?

ベストアンサー1

サーバーIP

サーバーの IP アドレスは から取得できます$_SERVER['SERVER_ADDR']

サーバーのMACアドレス

netstat -ieMAC アドレスについては、 Linux またはWindows での出力を解析できますipconfig /all

クライアントIPアドレス

クライアントIPは次の場所から取得できます。$_SERVER['REMOTE_ADDR']

クライアントMACアドレス

クライアントの MAC アドレスは、次の特別な状況を除いて利用できません。クライアントがサーバーと同じイーサネット セグメント上にある場合。

つまり、LANベースのシステムを構築していて、クライアントがarp -n同じイーサネット セグメント上にある場合は、 (linux) またはarp -a(windows)の出力を解析して MAC アドレスを取得できます。

編集: コメントで外部コマンドの出力を取得する方法を尋ねています。1つの方法はバックティックを使用することです。例:

$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;

#run the external command, break output into lines
$arp=`arp -a $ipAddress`;
$lines=explode("\n", $arp);

#look for the output line describing our IP address
foreach($lines as $line)
{
   $cols=preg_split('/\s+/', trim($line));
   if ($cols[0]==$ipAddress)
   {
       $macAddr=$cols[1];
   }
}

しかし、クライアントが LAN 上にない場合はどうなるでしょうか?

まあ、クライアントにその情報を自発的に提供してもらい、他の手段で送信しない限り、運が悪いですね。

おすすめ記事