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动态图像的创建
Oct 09 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
PHP daddslashes 使用方法介绍
Oct 26 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
Jun 06 PHP
PHP定时更新程序设计思路分享
Jun 10 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
PHP实现简易blog的制作
Oct 24 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
php 字符串函数收集
2010/03/29 PHP
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
python opencv之SURF算法示例
2018/02/24 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
c语言常见笔试题总结
2016/09/05 面试题
教育科研先进个人材料
2014/01/26 职场文书
早读课迟到检讨书
2014/09/25 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
化验室安全管理制度
2015/08/06 职场文书
《包身工》教学反思
2016/02/23 职场文书
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript