• 技术文章 >后端开发 >PHP问题

    php用什么方式获取mac地址

    (*-*)浩(*-*)浩2019-10-21 11:47:27原创1800
    获取客户端的mac地址是非常有用的一个功能,因为它是客户端的不可变的唯一标识,更换IP或者清除本地记录都是没用的。

    所以获取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; 
    ?>

    以上就是php用什么方式获取mac地址的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:php手册怎么使用 下一篇:php是怎么实现事件监听的
    大前端线上培训班

    相关文章推荐

    • 学php要学ps吗• PHP判断是不是数字• php页面可以转成html页面吗• php判断是不是日期

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网