所以获取mac地址经常会用到购买软件时的一机一激活码,网站注册每台机器只能注册一次等等。
在电商系统开发中,常见的一个功能就是:用户在没有登录的状态下将商品加入购物车,登录后自动将购物车数据同步上来。
对此的解决办法我们一般都是使用COOKIE或者SESSION解决即可。其实也可以用获取客户端的mac地址作为唯一标识存入到数据库中,登录成功后再进行匹配。(推荐学习:PHP视频教程)
MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址 。
大数据时代的云很多时候都有用到此类方法。
网上查询整理的代码如下:
<?php 
 /** 
 获取网卡的MAC地址原码;目前支持WIN/LINUX系统 
 获取机器网卡的物理(MAC)地址 
 **/ 
 
 class GetMacAddr{ 
 
 var $return_array = array(); // 返回带有MAC地址的字串数组 
 var $mac_addr; 
 
 function GetMacAddr($os_type){ 
 switch ( strtolower($os_type) ){ 
 case "linux": 
 $this->forLinux(); 
 break; 
 case "solaris": 
 break; 
 case "unix": 
 break; 
 case "aix": 
 break; 
 default: 
 $this->forWindows(); 
 break; 
 
 } 
 
 
 $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; 
 } 
 
 
 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; 
 } 
 } 
 
 
 
 function forLinux(){ 
 @exec("ifconfig -a", $this->return_array); 
 return $this->return_array; 
 } 
 
 } 
//方法使用
$mac = new GetMacAddr(PHP_OS); 
echo $mac->mac_addr; 
?>下载本文