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中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
PHP中常用的转义函数
Feb 28 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
phpQuery采集网页实现代码实例
Apr 02 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中设置多级目录session的问题
2011/08/08 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
javascript中创建对象的三种常用方法
2010/12/30 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
Python函数返回值实例分析
2015/06/08 Python
python魔法方法-自定义序列详解
2016/07/21 Python
python中的字典使用分享
2016/07/31 Python
Python内置加密模块用法解析
2019/11/25 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
C语言基础笔试题
2013/04/27 面试题
学院领导推荐信
2013/10/30 职场文书
学校课外活动总结
2014/05/08 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
二年级学生期末评语
2014/12/26 职场文书