PHP能否获取客户端唯一标识(cpu序列号,mac地址等)

PHP能否获取客户端唯一标识(cpu序列号,mac地址等),第1张

权限足够的情况下,可以输出cpu信息php调用:$a = exec('cat /proc/stat');php有个执行方式是用``包裹字符串,同样可以在系统上直接执行同样需要足够的权限。

本文所述php实例可以完成获取局域网所有用户的电脑IP和主机名、及mac地址的功能,对于php程序设计人员有一定的参考借鉴价值。完整代码如下:

<php

$bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP

echo "本机IP:",$bIp,"\n";

echo "本机主机名:",gethostbyaddr($bIp),"\n\n\n"; //gethostbyaddr 函数可以根据局域网IP获取主机名

//默认网关IP

list($ipd1,$ipd2,$ipd3) = explode('',$bIp);

$mask = $ipd1 "" $ipd2 "" $ipd3 ;

exec('arp -a',$aIp); //获取局域网中的其他IP

foreach( $aIp as $ipv) {

if(strpos($ipv,'接口') !== false) {//一下显示的IP是否是当前局域网中的 而不是其他的类型 可以在cmd下试一下命令

$bool = false;

preg_match('/(:(:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]\d)))\){3}(:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]\d)))/',$ipv,$arr);

if(strcmp($arr[0],$bIp) == 0) {

$bool = true;

}

} else {

if($bool) {

$str = preg_replace('/\s+/', '|', $ipv);

$sArr = explode('|',$str);

if($sArr[1] == 'Internet' || empty($sArr[1])) {

continue;

}

//去除默认网关

if(strcmp($mask "1", $sArr[1]) == 0) {

continue;

}

//去除同网关下255的IP

if(strcmp($mask "255", $sArr[1]) == 0) {

continue;

}

//去除组播IP

list($cIp) = explode('', $sArr[1]);

if($cIp >= 224 && $cIp <= 239) {

continue;

}

echo "IP地址:|",$sArr[1],"|\n";

echo "MAC地址:",$sArr[2],"\n";

echo "主机名:",gethostbyaddr($sArr[1]),"\n";

echo "\n\n";

}

}

}

网上找的类。你参考吧。

>

PHP程序可以获取服务器的硬盘序列号、MAC地址这些数据,原理是调用外部命令检测结果,具体方法与系统的类型有关,但是肯定不可能获取浏览者的信息,因为PHP只在服务器上执行。

你的第二段代码获取MAC值,在Windows是成功的,如果你是需要在UNIX下使用,需要根据你的 *** 作系统类型来修改程序代码。

以上就是关于PHP能否获取客户端唯一标识(cpu序列号,mac地址等)全部的内容,包括:PHP能否获取客户端唯一标识(cpu序列号,mac地址等)、php中怎么获取访问当前页面电脑的IP地址、linux下使用php获取客户端mac地址(注:不是服务器端的) 急…… 望高人指点……等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9731329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存