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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-18 03:59:16867ブラウズ

How Can I Get the MAC and IP Addresses of Connected Clients Using PHP?

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

この記事は、開発者が PHP スクリプトに接続されているクライアントの MAC アドレスと IP アドレスを取得できるようにすることを目的としています。この情報を取得する方法を理解することは、さまざまなネットワーク関連アプリケーションにとって重要です。

サーバー IP アドレス

サーバーの IP アドレスの取得は、PHP では $_SERVER['SERVER_ADDR'] を使用して簡単に取得できます。

サーバーの MAC アドレス

サーバーの MAC アドレスを取得できません。ネイティブの PHP 機能。ただし、1 つのアプローチは、Linux の netstat -ie や Windows の ipconfig /all などの外部コマンドの出力を解析することです。

クライアント IP アドレス

クライアントの IP アドレスは、$_SERVER を通じてすぐに取得できます。 ['REMOTE_ADDR'].

クライアント MAC Address

残念ながら、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 サイトの他の関連記事を参照してください。

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