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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
十天学会php之第一天
Oct 09 PHP
PHPEXCEL 使用小记
Jan 06 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
Zend Framework数据库操作技巧总结
Feb 18 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
php面向对象重点知识分享
Sep 27 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 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
基于mysql的论坛(6)
2006/10/09 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
降低PHP Redis内存占用
2017/03/23 PHP
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
js实现返回顶部效果
2017/03/10 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
python client使用http post 到server端的代码
2013/02/10 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
简单了解python的break、continue、pass
2019/07/08 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
C#笔试题
2015/07/14 面试题
介绍一下gcc特性
2012/01/20 面试题
同事打架检讨书
2014/02/04 职场文书
网络技术专业推荐信
2014/02/20 职场文书
协议书的格式
2014/04/23 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
应聘会计求职信
2014/06/11 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
Python中for后接else的语法使用
2021/05/18 Python
Python中的 No Module named ***问题及解决
2022/07/23 Python