Подтвердить что ты не робот

Как получить MAC-адрес клиента с помощью PHP?

Как я могу получить MAC-адрес с помощью PHP или javascript...

4b9b3361

Ответ 2

MAC-адрес (адрес локального сетевого интерфейса низкого уровня) не выдерживает переходов через IP-маршрутизаторы. Вы не можете найти MAC-адрес клиента с удаленного сервера.

В локальной подсети MAC-адреса сопоставляются с IP-адресами через систему ARP. Интерфейсы локальной сети знают, как сопоставлять IP-адреса с MAC-адресами. Однако, когда ваши пакеты были маршрутизированы в локальной подсети (и через) шлюза в "настоящий" Интернет, исходящий MAC-адрес будет потерян. Упрощенно, каждый пересылку подсети к подсети ваших пакетов включает однотипное сопоставление IP-to-MAC для локальной маршрутизации в каждой подсети.

Ответ 3

echo GetMAC();

function GetMAC(){
    ob_start();
    system('getmac');
    $Content = ob_get_contents();
    ob_clean();
    return substr($Content, strpos($Content,'\\')-20, 17);
}

Ответ 4

Используйте эту функцию для получения MAC-адреса клиента:

function GetClientMac(){
    $macAddr=false;
    $arp=`arp -n`;
    $lines=explode("\n", $arp);

    foreach($lines as $line){
        $cols=preg_split('/\s+/', trim($line));

        if ($cols[0]==$_SERVER['REMOTE_ADDR']){
            $macAddr=$cols[2];
        }
    }

    return $macAddr;
}

Ответ 5

Вот возможный способ сделать это:

$string=exec('getmac');
$mac=substr($string, 0, 17); 
echo $mac;

Ответ 6

Идея заключается в использовании команды cmd ipconfig /all и извлечении только адреса mac.

Какой его индекс $pmac + 33.

И размер макроса равен 17.

<?php
ob_start();
system('ipconfig /all');
$mycom=ob_get_contents();
ob_clean();
$findme = 'physique';
$pmac = strpos($mycom, $findme);
$mac=substr($mycom,($pmac+33),17);
echo $mac;
?>

Ответ 7

Сначала вы проверяете свой пользовательский агент ОС Linux или Windows или другое. Затем ваша ОС Windows Затем этот код использует:

public function win_os(){ 
    ob_start();
    system('ipconfig-a');
    $mycom=ob_get_contents(); // Capture the output into a variable
    ob_clean(); // Clean (erase) the output buffer
    $findme = "Physical";
    $pmac = strpos($mycom, $findme); // Find the position of Physical text
    $mac=substr($mycom,($pmac+36),17); // Get Physical Address

    return $mac;
   }

И ваша ОС Linux Ubuntu или Linux, а затем этот код:

public function unix_os(){
    ob_start();
    system('ifconfig -a');
    $mycom = ob_get_contents(); // Capture the output into a variable
    ob_clean(); // Clean (erase) the output buffer
    $findme = "Physical";
    //Find the position of Physical text 
    $pmac = strpos($mycom, $findme); 
    $mac = substr($mycom, ($pmac + 37), 18);

    return $mac;
    }

Этот код может работать на OS X.

Ответ 8

Получить ip и mac адрес клиентского устройства

{
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_X_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if(isset($_SERVER['REMOTE_ADDR']))
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';

    $macCommandString   =   "arp " . $ipaddress . " | awk 'BEGIN{ i=1; } { i++; if(i==3) print $3 }'";

    $mac = exec($macCommandString);

    return ['ip' => $ipaddress, 'mac' => $mac];
}

Ответ 9

//Simple & effective way to get client mac address
// Turn on output buffering
ob_start();
//Get the ipconfig details using system commond
system('ipconfig /all');

// Capture the output into a variable

    $mycom=ob_get_contents();

// Clean (erase) the output buffer

    ob_clean();

$findme = "Physical";
//Search the "Physical" | Find the position of Physical text
$pmac = strpos($mycom, $findme);

// Get Physical Address
$mac=substr($mycom,($pmac+36),17);
//Display Mac Address
echo $mac;