php获取服务器端mac和客户端mac的地址支持WIN/LINUX


Posted in PHP onMay 15, 2014

获取服务器mac

<?php 
/** 
获取网卡的MAC地址原码;目前支持WIN/LINUX系统 
获取机器网卡的物理(MAC)地址 
**/ 
class GetmacAddr{ 
var $result = array(); // 返回带有MAC地址的字串数组 
var $macAddr; 
/*构造*/ 
function __construct($osType){ 
switch ( strtolower($osType) ){ 
case "unix": break; 
case "solaris": break; 
case "aix": break; 
case "linux": { 
$this->for_linux_os(); 
}break; 
default: { 
$this->for_windows_os(); 
}break; 
} 
$temp_array = array(); 
foreach($this->result 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->macAddr = $temp_array[0]; 
break; 
} 
} 
unset($temp_array); 
return $this->macAddr; 
} 
/*linux系统中获取方法*/ 
function for_linux_os(){ 
@exec("ifconfig -a", $this->result); 
return $this->result; 
} 
/*win系统中的获取方法*/ 
function for_windows_os(){ 
@exec("ipconfig /all", $this->result); 
if ( $this->result ) { 
return $this->result; 
} else { 
$ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe"; 
if(is_file($ipconfig)) { 
@exec($ipconfig." /all", $this->result); 
} else { 
@exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->result); 
return $this->result; 
} 
} 
} 
} 
?>

获取客户端mac地址:
@exec("arp -a",$array); //执行arp -a命令,结果放到数组$array中 
foreach($array as $value){ 
//匹配结果放到数组$mac_array 
if(strpos($value,$_SERVER["REMOTE_ADDR"]) && preg_match("/(:?[0-9A-F]{2}[:-]){5}[0-9A-F]{2}/i",$value,$mac_array)){ 
$mac = $mac_array[0]; 
break; 
} 
} 
echo $mac;

注:客户端获取的mac不能在本机测试,只能用别的电脑访问才能输出
PHP 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
php递归使用示例(php递归函数)
Feb 14 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
CI配置多数据库访问的方法
Mar 28 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 PHP
Yii框架的布局文件实例分析
Sep 04 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
Aug 06 PHP
php小技巧之过滤ascii控制字符
May 14 #PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 #PHP
PHP中copy on write写时复制机制介绍
May 13 #PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 #PHP
php的慢速日志引起的Mysql错误问题分析
May 13 #PHP
PHP实现的MongoDB数据库操作类分享
May 12 #PHP
PHP中date与gmdate的区别及默认时区设置
May 12 #PHP
You might like
php时间不正确的解决方法
2008/04/09 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
yii的CURD操作实例详解
2014/12/04 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
javascript 获取图片颜色
2009/04/05 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
Javascript实现关闭广告效果
2021/01/29 Javascript
使用pdb模块调试Python程序实例
2015/06/02 Python
Python 列表理解及使用方法
2017/10/27 Python
python+opencv实现动态物体追踪
2018/01/09 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
一些Unix笔试题和面试题
2013/01/22 面试题
美德少年事迹材料
2014/01/23 职场文书
青年文明号服务承诺
2014/03/31 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
导师就业推荐信范文
2014/05/22 职场文书
大四毕业生自荐书
2014/07/05 职场文书
119消防日活动总结
2014/08/29 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
MySQL基于索引的压力测试的实现
2021/11/07 MySQL