我正在做laravel项目。我需要访问网站的人访问客户端的IP地址和MAC地址。
通过任何方式获取这两个地址。
我用过:
Request::ip();
我获得了客户端的IP地址。但是如何获取MAC地址。
先谢谢了。
答案 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 地址的参数 getmac
。 getmac
是获取 MAC 地址的 CMD 命令。
要获取MAC 地址,我们使用exec()
函数。
$macAddr = exec('getmac');
要获取IP 地址,我们必须在控制器中包含使用 Illuminate\Http\Request;
,然后添加以下 pre 标记的代码。它将给出网络的 AP 地址。
$ipAddr=\Request::ip();