Как получить IP-адрес и MAC-адрес клиента в laravel? - PullRequest
0 голосов
/ 19 февраля 2019

Я работаю над проектом Laravel.Мне нужно получить доступ к IP-адресу и MAC-адресу клиента для тех, кто имеет доступ к веб-сайту.

Это любой способ получить оба адреса.

Я использовал:

Request::ip();

Я получил IP-адрес клиента.Но как получить MAC-адрес.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Да, вы можете сделать это

ПО УМОЛЧАНИЮ PHP имеет встроенную функцию, которая выполняет команды командной строки

shell_exec

http://php.net/manual/en/function.shell-exec.php

exec

http://php.net/manual/en/function.exec.php

Итак, для получения MAC-адреса написали функцию

 function getMAcAddressExec()
{
        return substr(exec('getmac'), 0, 17); 
}
echo getMAcAddressExec();


function getMAcAddressShellExec()
{
        return substr(shell_exec('getmac'), 159,20); 
}
echo getMAcAddressShellExec();

EDITED

добавить следующие строки в web.php файле в routes папке

Route::get('/getmacshellexec',function()
    {
        $shellexec = shell_exec('getmac'); 
        dd($shellexec);
    }
);

Route::get('/getmacexec',function()
    {
        $shellexec = exec('getmac'); 
        dd($shellexec);
    }
);

И попробовать URL

yourproject/getmacshellexec  

И

yourproject/getmacexec

И добрый комментарий Ниже вы получите любой вывод

0 голосов
/ 19 февраля 2019

IP-адрес сервера Вы можете получить IP-адрес сервера от $ _SERVER ['SERVER_ADDR'].

MAC-адрес сервера Для MAC-адреса вы можете проанализироватьвывод netstat -ie в Linux или ipconfig / all в Windows.

IP-адрес клиента IP-адрес клиента можно получить из $ _SERVER ['REMOTE_ADDR']

MAC-адрес клиента MAC-адрес клиента не будет вам доступен, за исключением одного особого обстоятельства: если клиент находится в том же сегменте Ethernet, что и сервер.

Итак, если выЕсли вы строите какую-то систему на основе локальной сети, и ваши клиенты находятся в одном и том же сегменте Ethernet, то вы можете получить MAC-адрес, проанализировав выходные данные arp -n (linux) или arp -a (windows). Но что, если клиент не находится в локальной сети?

Что ж, вам не повезло, если вы не можете заставить клиента добровольно передать эту информацию и передать другим способом.

...