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 相关文章推荐
自动分页的不完整解决方案
Jan 12 PHP
中国站长站 For Dede4.0 采集规则
May 27 PHP
快速配置PHPMyAdmin方法
Jun 05 PHP
php学习 字符串课件
Jun 15 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 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
深入Nginx + PHP 缓存详解
2013/07/11 PHP
PHP模块memcached使用指南
2014/12/08 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
JavaScript模块详解
2017/12/18 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
2014年学前班工作总结
2014/12/08 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
校长新学期致辞
2015/07/30 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL