php產生擷取原生mac地址

來源:互聯網
上載者:User
<?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;
?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.