获取PHP服务端的网卡MAC地址的方法
- 5157
- PHP
- 8
- super_dodo
- 2016/09/19
本意是想获得PHP客户端的用户的MAC的地址的,网上查找了一些资料,该篇幅先讲如何获得服务器端的MAC地址的方法和类。Windows下面比较容易,但是Linux下面因为权限的因素,可能坑多一些,希望各自尝试,或者给我提供好的方法和建议。直接上类文件和代码:
<?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class MacAddr{ public $return_array = array(); // 返回带有MAC地址的字串数组 public $mac_addr; /** ** 得到网卡的MAC地址 */ public function getMacAddr($os_type){ switch (strtolower($os_type)){ //根据系统的类型 case "linux": $this->forLinux(); break; case "unix": break; default: $this->forWindows(); break; //WINNT } $temp_array = array(); //临时数组用来放正则匹配的结果数组 foreach($this->return_array 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->mac_addr = $temp_array[0]; //匹配到第一个网卡地址 break; } } unset($temp_array); return $this->mac_addr; //返回网卡地址 } //对于windows系统 public function forWindows(){ @exec("ipconfig /all", $this->return_array); //得到网卡的信息 if($this->return_array){ return $this->return_array; }else{ $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe"; if(is_file($ipconfig)){ @exec($ipconfig." /all", $this->return_array); }else{ @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->return_array); return $this->return_array; } } } //对于Linux系统 public function forLinux(){ @exec("ifconfig -a", $return_array); //得到网卡的信息 // echo '<pre>'; // print_r($return_array); return $return_array; } } //方法使用示例 $mac = new MacAddr(); $mac_addr = $mac->getMacAddr(PHP_OS); echo $mac_addr; //这就是服务端的Mac地址: B8-88-E3-35-8E-D3 //另外科普一下PHP_OS这个函数 echo PHP_OS; //WINNT Linux ?>
求各位大神各抒己见,我想获取客户端的唯一标识,Mac地址或者其他。
Ps:PHP获取的IP,不太可靠,因为用户把网断开,重新拨号,如果是动态分配IP(大多数)的话IP就变了,静态IP的话,可以获取到。
因为陌生所以勇敢~
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例