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不用正则采集速度探究总结
Mar 24 PHP
php数据库连接时容易出错的特殊符号问题
Sep 01 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 PHP
PHP Trait功能与用法实例分析
Jun 03 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数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python中int()函数的用法浅析
2017/10/17 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
应届毕业生简历自我评价
2014/01/31 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
语文教师个人工作总结
2015/02/06 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
培训通知
2015/04/17 职场文书
组织委员竞选稿
2015/11/21 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
Elasticsearch 索引操作和增删改查
2022/04/19 Python