Как я могу получить MAC-адрес с помощью PHP или javascript...
Как получить MAC-адрес клиента с помощью PHP?
Ответ 1
Вы можете получить 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
Ответ 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;