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 相关文章推荐
PHP+FLASH实现上传文件进度条相关文件 下载
Jul 21 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
Jun 18 PHP
测试php函数的方法
Nov 13 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
php判断是否连接上网络的方法实例详解
Dec 14 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
php反射学习之依赖注入示例
Jun 14 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 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中常用的预定义变量小结
2012/05/09 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
设定php简写功能的方法
2019/11/28 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
财务会计实习报告体会
2013/12/20 职场文书
公司员工检讨书
2014/02/08 职场文书
专家推荐信模板
2014/05/09 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
vue中data里面的数据相互使用方式
2022/06/05 Vue.js