PHP获得计算机的唯一标识[cpu,网卡]
以下是从网上转载来的源码,但是我测试均不能执行,不知道怎么回事,转过来大家可以交流一下
<?php
//获取电脑的CPU信息
function OnlyU(){
$a = '';
$b = array();
if(function_exists('exec')){
if(mailto:!@exec(/all",$b)){
return false;
}
}elseif(function_exists('system')){
ob_start();
if(mailto:!@system( /all")){
return false;
}else{
//...
}
$b = ob_get_contents();
ob_end_clean();
$b = explode("\n",$b);//print_r($b);
array_pop($b);
}else{
return false;
}
$all = sizeof($b);
for($i = 0; $i < $all; $i++){
if(strpos($b[$i],"Description") !== false){
if(strpos($b[$i+1],"Physical Address") !== false){
$c = explode(":",$b[$i+1]);
$a = trim($c[1]);
break;
}
}
}
return empty($a)?false:$a;
}
//获取网卡的MAC的地址
function getMAC() {
@exec("ipconfig /all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
if(eregi("Physical",$array[$Tmpa])){
$mac=explode(":",$array[$Tmpa]);
return $mac[1];
}
}
}
echo OnlyU();
echo getMAC();
?>
//获取网卡的MAC的地址
<?php
class GetMacAddr
{
var $return_array = array(); // 返回带有MAC地址的字串数组
var $mac_addr;
function GetMacAddr($os_type)
{
switch(strtolower($os_type) )
{
case "linux ":
$this-> forLinux();
break;
case "solaris ":
break;
case "unix ":
break;
case "aix ":
break;
default:
$this-> forWindows();
break;
}
$temp_array = array();
foreach ( $this-> return_array as $value )
{
if(preg_match( "/[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f]/i ", $value, $temp_array)) {
$this-> mac_addr = $temp_array[0];
break;
}
}
unset($temp_array);
return $this-> mac_addr;
}
function forWindows()
{
@exec( "ipconfig /all ",$this-> return_array);
if($this-> return_array){
return $this-> return_array;
}else{
$ipconfig = $_SERVER[ "WINDIR "]. "\system32\ipconfig.exe ";
if(is_file($ipconfig)){
@exec($ipconfig. " /all ", $this-> return_array);
}else{
@exec($_SERVER[ "WINDIR "]. "\system\ipconfig.exe /all ", $this-> return_array);
}
return $this-> return_array;
}
}
function forLinux()
{
@exec( "ifconfig -a ", $this-> return_array);
return $this-> return_array;
}
}
$mac = new GetMacAddr(PHP_OS);
echo $mac-> mac_addr;
?>
PHP获得计算机的唯一标识[cpu,网卡]的更多相关文章
- 设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识 zz
原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html 唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保 ...
- [转]设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识
原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html 唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保 ...
- 如何获取Android唯一标识(唯一序列号)
有很多场景和需求你需要用到手机设备的唯一标识符. 在Android中,有以下几种方法获取这样的ID. 1. The IMEI: 仅仅只对Android手机有效: 1 2 TelephonyManage ...
- Android 手机上获取物理唯一标识码[转]
所有添加有谷歌账户的设备可以返回一个 ANDROID_ID 所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添 ...
- 获取Android设备唯一标识码
概述 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码.虽然Android系统中提供了这样设备识别码,但是由于Android系统版本.厂商定制系统中的Bug等限制,稳定性和唯一 ...
- JAVA UUID 生成唯一标识
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want 需求 项目在设计表的时候,要处理并发多的一些数据 ...
- 如何获取Android手机的唯一标识
有很多场景和需求你需要用到手机设备的唯一标识符. 在Android中,有以下几种方法获取这样的ID. 1. The IMEI: 仅仅只对Android手机有效: 1 2 TelephonyManage ...
- Android 获取设备唯一标识码
概述 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码.虽然Android系统中提供了这样设备识别码,但是由于Android系统版本.厂商定制系统中的Bug等限制,稳定性和唯一 ...
- iOS获取设备唯一标识的8种方法
8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可 ...
随机推荐
- pip源地址
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/si ...
- HCL AppScan Standard 9.0.3.13
https://pan.baidu.com/s/1mh97vyJdWy1CmF589jZJhQ 网盘密码: q31g / 压缩密码:shungg.cn http://www.shungg.cn/pos ...
- ansible组
安装公钥:服务器互通需要公钥和秘钥 https://www.cnblogs.com/yaozhiqiang/p/9951606.html 配置完成pulic ssh key(公钥和秘钥)之后 进入/e ...
- Node 12 值得关注的新特性
前言 时隔一年,Node.js 12 如约而至,正式发布第一个 Current 版本. 该版本带来了诸如: V8 更新带来好多不错的特性. HTTP 解析速度提升. 启动速度大幅提升. 更好的诊断报告 ...
- oracle学习笔记(四) DML数据控制语言和TCL 事务控制语言
DML 数据管理语言 Data manage language insert, update, delete以及select语句,不过,有人也把select单独出来,作为DQL 数据查询语言 data ...
- linux NFS 客户端的安装
1. 安装 showmount [root@allentuns ~]# yum -y install showmount 2. 查看服务器共享 [root@allentuns ~]# showmoun ...
- nginx 实现浏览器文件下载服务
nginx 实现浏览器文件下载服务 2018/07/21 这里记录如何用 nginx 搭建一个简易的 file server,实现在浏览器上进行文件的下载操作. 要实现文件下载功能非常非常容易,不需要 ...
- JVM加载class文件原理
装载的概念 所谓装载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程. Java中类装载器装载类到虚拟机 在Java中,类装载器把一个类装入Ja ...
- django之类视图
一:类视图 1. 为什么使用类视图? # 以注册请求逻辑为例 def register(request): if request.method == "GET": render(r ...
- macOS BLAS LAPACK
/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers