この記事は、開発者が PHP スクリプトに接続されているクライアントの MAC アドレスと IP アドレスを取得できるようにすることを目的としています。この情報を取得する方法を理解することは、さまざまなネットワーク関連アプリケーションにとって重要です。
サーバーの IP アドレスの取得は、PHP では $_SERVER['SERVER_ADDR'] を使用して簡単に取得できます。
サーバーの MAC アドレスを取得できません。ネイティブの PHP 機能。ただし、1 つのアプローチは、Linux の netstat -ie や Windows の ipconfig /all などの外部コマンドの出力を解析することです。
クライアントの IP アドレスは、$_SERVER を通じてすぐに取得できます。 ['REMOTE_ADDR'].
残念ながら、PHP にはクライアントの MAC アドレスを取得する直接的な手段がありません。ただし、クライアントがサーバーと同じイーサネット セグメント上にある場合という特定の条件下では可能です。このような場合は、arp -n (Linux) または arp -a (Windows) の出力を解析できます。
外部コマンド出力の取得
例は次のとおりです。バッククォートを使用して外部コマンド出力を取得する:
$ipAddress = $_SERVER['REMOTE_ADDR']; $macAddr = false; $arp = `arp -a $ipAddress`; $lines = explode("\n", $arp); foreach ($lines as $line) { $cols = preg_split('/\s+/', trim($line)); if ($cols[0] == $ipAddress) { $macAddr = $cols[1]; } }
クライアントがローカル ネットワーク上にない場合、追加のクライアント側メカニズムを提供しない限り、MAC アドレスを決定できないことに注意してください。
以上がPHP を使用して、接続されているクライアントの MAC アドレスと IP アドレスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。