Maison >développement back-end >tutoriel php >Comment puis-je obtenir les adresses MAC et IP des clients connectés à l'aide de PHP ?

Comment puis-je obtenir les adresses MAC et IP des clients connectés à l'aide de PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-18 03:59:16865parcourir

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

Obtention des adresses MAC et IP des clients connectés en PHP

Cet article vise à aider les développeurs à récupérer les adresses MAC et IP des clients connectés à leurs scripts PHP. Comprendre comment acquérir ces informations est crucial pour diverses applications liées au réseau.

Adresse IP du serveur

La récupération de l'adresse IP du serveur est simple en PHP en utilisant $_SERVER['SERVER_ADDR'].

Adresse MAC du serveur

L'obtention de l'adresse MAC du serveur n'est pas une fonctionnalité native de PHP. Cependant, une approche consiste à analyser le résultat de commandes externes telles que netstat -ie sous Linux ou ipconfig /all sous Windows.

Adresse IP du client

L'adresse IP du client est facilement disponible via $_SERVER ['REMOTE_ADDR'].

Adresse MAC du client

Malheureusement, PHP ne fournit pas d'adresse moyen direct de récupérer l’adresse MAC du client. Néanmoins, cela est possible sous une condition précise : si le client est sur le même segment Ethernet que le serveur. Dans de tels cas, vous pouvez analyser la sortie de arp -n (Linux) ou arp -a (Windows).

Récupération de la sortie d'une commande externe

Voici un exemple de en utilisant des backticks pour récupérer le résultat de la commande externe :

$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];
   }
}

Limitations et Considérations

Sachez que si le client n'est pas sur un réseau local, vous ne pouvez pas déterminer son adresse MAC sans mécanismes supplémentaires côté client pour la fournir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn