我正在开发 Laravel 项目。我需要获取访问网站的客户端 IP 地址和 MAC 地址。
有没有办法同时获取这两个地址呢?
我已经尝试过:
Request::ip();
我已经获取了客户端的IP地址,但是如何获取MAC地址呢?
提前感谢您的帮助。
我正在开发 Laravel 项目。我需要获取访问网站的客户端 IP 地址和 MAC 地址。
有没有办法同时获取这两个地址呢?
我已经尝试过:
Request::ip();
是的,你可以做到
默认情况下,PHP具有内置函数来执行命令行命令
shell_exec
http://php.net/manual/zh/function.shell-exec.php
exec
http://php.net/manual/zh/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();
Route::get('/getmacshellexec',function()
{
$shellexec = shell_exec('getmac');
dd($shellexec);
}
);
Route::get('/getmacexec',function()
{
$shellexec = exec('getmac');
dd($shellexec);
}
);
yourproject/getmacshellexec
AND
yourproject/getmacexec
exec()
是一个用于在PHP中运行外部程序的函数。它返回命令结果中的最后一行。要获取MAC地址,请传递参数getmac
,该参数将返回客户端的MAC地址。 getmac
是一个获取MAC地址的CMD命令。
要获取MAC地址,我们使用exec()
函数。
$macAddr = exec('getmac');
要获取IP地址,我们必须在控制器中包含使用Illuminate\Http\Request;
,然后添加以下pre标记的代码。 它将提供网络的AP地址。
$ipAddr=\Request::ip();
服务器IP地址 您可以从$_SERVER['SERVER_ADDR']获取服务器IP地址。
服务器MAC地址 对于MAC地址,您可以在Linux中解析netstat -ie的输出或在Windows中使用ipconfig /all。
客户端IP地址 您可以从$_SERVER['REMOTE_ADDR']获取客户端IP地址。
客户端MAC地址 除非客户端与服务器在同一以太网段上,否则您将无法获得客户端MAC地址。
因此,如果您正在构建某种基于局域网的系统,并且您的客户端位于同一以太网段上,则可以通过解析arp -n(Linux)或arp -a(Windows)的输出来获取MAC地址。 但是,如果客户端不在局域网上呢?
那么,除非您可以让客户端自愿提供该信息并通过其他方式传输,否则您将没有办法。