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 相关文章推荐
dedecms系统常用术语汇总
Apr 03 PHP
完美解决PHP中文乱码
Nov 26 PHP
PHP中include()与require()的区别说明
Mar 10 PHP
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
PHP获取文件扩展名的4种方法
Nov 24 PHP
PHP浮点比较大小的方法
Feb 14 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 PHP
php获取文章内容第一张图片的方法示例
Jul 03 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
使用composer命令加载vendor中的第三方类库 的方法
Jul 09 PHP
如何通过PHP实现Des加密算法代码实例
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
生成缩略图
2006/10/09 PHP
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
Python、Javascript中的闭包比较
2015/02/04 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python tkinter控件布局项目实例
2019/11/04 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
使用npy转image图像并保存的实例
2020/07/01 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
打架检讨书100字
2014/01/08 职场文书
经典洗发水广告词
2014/03/13 职场文书
服务标兵事迹材料
2014/05/04 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
会议室标语
2014/06/21 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
放飞理想主题班会
2015/08/14 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android