Как получить IP-адрес клиента и MAC-адрес в laravel?

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

Есть ли способ получить оба адреса.

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

Request::ip();

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

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


person Bhuvanesh Soni    schedule 19.02.2019    source источник
comment
Вот хороший ответ на вопрос.   -  person nakov    schedule 19.02.2019
comment
Возможный дубликат Как я могу получить MAC-адрес и IP-адрес подключенного клиента в PHP?   -  person Mostafa Hussein    schedule 19.02.2019


Ответы (3)


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

ПО УМОЛЧАНИЮ PHP ИМЕЕТ ВСТРОЕННУЮ ФУНКЦИЮ, ВЫПОЛНЯЮЩУЮ КОМАНДЫ КОМАНДНОЙ СТРОКИ

shell_exec

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

выполнить

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();

ОТРЕДАКТИРОВАНО

добавить следующие строки в файл 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

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

person Manojkiran.A    schedule 19.02.2019
comment
на какой платформе вы работаете с linux или windows - person Manojkiran.A; 11.03.2019
comment
Вы пытаетесь это сделать на живом веб-сервере? - person Manojkiran.A; 01.04.2019

exec() — это функция, которая используется для запуска внешней программы в PHP. Он возвращает последнюю строку из результата команды. Чтобы получить MAC-адрес, передайте параметр getmac, который возвращает MAC-адрес клиента. getmac — это команда CMD для получения MAC-адреса.

Чтобы получить MAC-адрес, мы используем функцию exec().

$macAddr = exec('getmac');

Для получения IP-адреса мы должны включить использование Illuminate\Http\Request; в контроллере, а затем добавить код приведенного ниже тега pre. Это даст адрес AP сети.

$ipAddr=\Request::ip();
person Sudaba Solaimankhil    schedule 29.06.2021

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). Но что, если клиент не находится в локальной сети?

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

person Hamza Dastgir    schedule 19.02.2019
comment
Ответить на вопрос Пола Диксона - person Mostafa Hussein; 19.02.2019