我试图使用PHP获取客户端的IP和MAC地址,但无法获取。我尝试了以下代码,但它给出了错误的MAC地址-
ob_start(); // Turn on output buffering
system(‘ipconfig /all’);
$mycom=ob_get_contents(); // Capture the output into a variable
ob_clean(); // Clean (erase) the output buffer
$findme = "Physical";
$pmac = strpos($mycom, $findme);
$mac=substr($mycom,($pmac+36),17); // Get Physical Address
就像评论者在这个问题上说的那样,由于PHP在服务器上运行,您将无法获得客户端MAC,但您可以通过检查$_SERVER['REMOTE_ADDR']
来获得客户端IP,或者如果用户在代理后面,您可以使用$_SERVER['HTTP_X_FORWARDED_FOR']
正如许多用户所提到的,不可能获得用户MAC_ADDRESS
。要获得用户ip,请尝试此
function getUserIP()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}