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 fsockopen写的HTTP下载的类
Feb 22 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
php动态实现表格跨行跨列实现代码
Nov 06 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
PHP curl 获取响应的状态码的方法
Jan 13 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
PHP http请求超时问题解决方案
Nov 13 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
JS获取父节点方法
2009/08/20 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Python常用列表数据结构小结
2014/08/06 Python
python中元类用法实例
2014/10/10 Python
Python可变参数函数用法实例
2015/07/07 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
在Python中表示一个对象的方法
2019/06/25 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Python ini文件常用操作方法解析
2020/04/26 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
《我的信念》教学反思
2014/02/15 职场文书
亲属关系公证书
2014/04/08 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
7个关于Python的经典基础案例
2021/11/07 Python