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

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

Вы можете получить MAC-адрес клиента в javascript, если они работают под управлением Windows и позволяют устанавливать элемент управления ActiveX.

http://www.eggheadcafe.com/community/aspnet/3/10054371/how-to-get-client-mac-address.aspx

http://codingresource.blogspot.com/2010/02/get-client-mac-address-ip-address-using.html

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

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

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

Используйте эту функцию для получения 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; } 

Идея заключается в использовании команды 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; ?> 

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

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

Сначала вы проверяете свой пользовательский агент ОС 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.

Получение 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]; } 
 //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;