Получить MAC-адрес с помощью PHP: выполнение команды ARP и получение данных клиента

Чтобы получить MAC-адрес с помощью PHP, вы можете использовать следующие методы:

  1. Метод 1: использование функции exec()и команды arp:

    function getMacAddress() {
    $output = [];
    exec('arp -a', $output);
    foreach($output as $line) {
        $line = preg_split('/\s+/', $line);
        if(isset($line[1]) && filter_var($line[1], FILTER_VALIDATE_MAC)) {
            return $line[1];
        }
    }
    return 'MAC address not found';
    }
  2. Метод 2: использование функций gethostbyaddr()и getenv():

    function getMacAddress() {
    $ipAddress = $_SERVER['REMOTE_ADDR'];
    $hostname = gethostbyaddr($ipAddress);
    $macAddress = getenv('HTTP_CLIENT_MAC_ADDR');
    if (!$macAddress) {
        $macAddress = getenv('HTTP_X_FORWARDED_FOR');
    }
    if (!$macAddress) {
        $macAddress = getenv('HTTP_X_FORWARDED');
    }
    if (!$macAddress) {
        $macAddress = getenv('HTTP_FORWARDED_FOR');
    }
    if (!$macAddress) {
        $macAddress = getenv('HTTP_FORWARDED');
    }
    if (!$macAddress) {
        $macAddress = getenv('REMOTE_ADDR');
    }
    return $macAddress;
    }

Обратите внимание, что второй метод основан на отправке веб-браузером клиента информации о MAC-адресе, что не всегда гарантируется.