Maison >développement back-end >tutoriel php >Comment puis-je obtenir les adresses MAC et IP des clients en PHP ?

Comment puis-je obtenir les adresses MAC et IP des clients en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-19 15:08:14792parcourir

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

Obtention des adresses MAC et IP des clients en PHP

Comprendre l'identité des clients connectés est souvent crucial à des fins d'administration et de surveillance du réseau. PHP fournit des méthodes pour récupérer les adresses MAC et IP de ces clients.

Adresses IP et MAC du serveur

La récupération de l'adresse IP du serveur est simple à l'aide de $_SERVER['SERVER_ADDR']. Pour l'adresse MAC, on peut analyser la sortie des commandes système comme netstat -ie sous Linux ou ipconfig /all sous Windows.

Adresse IP du client

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

Adresse MAC du client

Malheureusement, l'obtention du l'adresse MAC du client n'est généralement pas possible, sauf :

  • Le client est sur le même segment Ethernet que le serveur.

Dans de tels cas, analyser la sortie d'arp - n (Linux) ou arp -a (Windows) donne l'adresse MAC.

Une méthode d'analyse du résultat de la commande consiste à utiliser backticks :

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

Scénarios non-LAN

Si le client n'est pas sur le même LAN, la récupération de l'adresse MAC n'est généralement pas réalisable par les méthodes standard. Le client peut être amené à fournir volontairement ces informations.

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