如何在laravel中获取客户端IP地址和MAC地址?

时间:2019-02-19 04:20:00

标签: php laravel ip-address mac-address

我正在做laravel项目。我需要访问网站的人访问客户端的IP地址和MAC地址。

通过任何方式获取这两个地址。

我用过:

Request::ip();

我获得了客户端的IP地址。但是如何获取MAC地址。

先谢谢了。

3 个答案:

答案 0 :(得分:0)

服务器IP 您可以从$ _SERVER ['SERVER_ADDR']获取服务器IP地址。

服务器MAC地址 对于MAC地址,您可以解析netstat -ie在Linux中的输出,或ipconfig / all在Windows中的输出。

客户端IP地址 您可以从$ _SERVER ['REMOTE_ADDR']

获取客户端IP

客户端MAC地址 除非在一种特殊情况下,否则客户端MAC地址将不可用:如果客户端与服务器位于同一以太网段中。

因此,如果您正在构建某种基于LAN的系统,并且您的客户端位于同一以太网段上,则可以通过解析arp -n(linux)或arp -a(windows)的输出来获取MAC地址。 。 但是,如果客户端不在局域网上怎么办?

好吧,除非您让客户自愿提供这些信息并通过其他方式进行传输,否则您将很不走运。

答案 1 :(得分:0)

是的你可以做到

  

默认情况下,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  

AND

yourproject/getmacexec

请在下面获得任何输出

答案 2 :(得分:0)

exec() 是一个用于在 PHP 中运行外部程序的函数。它返回命令结果的最后一行。要获取 MAC 地址,请传递返回客户端 MAC 地址的参数 getmacgetmac 是获取 MAC 地址的 CMD 命令。

要获取MAC 地址,我们使用exec() 函数。

$macAddr = exec('getmac');

要获取IP 地址,我们必须在控制器中包含使用 Illuminate\Http\Request;,然后添加以下 pre 标记的代码。它将给出网络的 AP 地址。

$ipAddr=\Request::ip();