ホームページ >バックエンド開発 >PHPチュートリアル >PHP でクライアントの MAC アドレスと IP アドレスを取得するにはどうすればよいですか?

PHP でクライアントの MAC アドレスと IP アドレスを取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-19 15:08:14792ブラウズ

How Can I Get Client MAC and IP Addresses in PHP?

PHP でクライアントの MAC アドレスと IP アドレスを取得する

接続されたクライアントの ID を理解することは、ネットワークの管理と監視の目的で重要となることがよくあります。 PHP には、これらのクライアントの MAC アドレスと IP アドレスの両方を取得するメソッドが用意されています。

サーバーの IP アドレスと MAC アドレス

サーバーの IP アドレスの取得は、$_SERVER['SERVER_ADDR'] を使用することで簡単に行えます。 MAC アドレスについては、Linux の netstat -ie や Windows の ipconfig /all などのシステム コマンドの出力を解析できます。

クライアント IP アドレス

クライアントの IP アドレスには、$ を使用して簡単にアクセスできます。 _SERVER['REMOTE_ADDR'].

クライアント MACアドレス

残念ながら、通常、次の場合を除き、クライアントの MAC アドレスを取得することはできません。

  • クライアントがサーバーと同じイーサネット セグメント上にある。

そのような場合、arp -n (Linux) または arp -a (Windows) の出力を解析すると、MAC が得られます。 address.

コマンド出力を解析する 1 つの方法は、バッククォートを使用することです。

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

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

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

非 LAN シナリオ

クライアントが同じ LAN 上にない場合、通常、標準的な方法では MAC アドレスを取得することはできません。クライアントは自発的にこの情報を提供する必要がある場合があります。

以上がPHP でクライアントの MAC アドレスと IP アドレスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。