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 UTF8编码内的繁简转换类
Jul 20 PHP
php htmlspecialchars加强版
Feb 16 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
Nov 29 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
php异常处理技术,顶级异常处理器
Jun 13 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
PHP7常量数组用法分析
Sep 26 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
Apr 19 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
php实现微信支付之退款功能
May 30 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函数常用用法小结
2010/02/08 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
jquery判断浏览器类型的代码
2012/11/05 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python编程实现的图片识别功能示例
2017/08/03 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
医务工作者先进事迹材料
2014/01/26 职场文书
服务员岗位职责
2014/01/29 职场文书
教育见习报告范文
2014/11/03 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书