<?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("/sbin/ifconfig", $this->return_array,$r); 
        //echo "1234567";
        //  print_r($this->return_array);
          echo "<br/>";
                  return $this->return_array; 
             } 
        
    } 
    //方法使用 
    $mac = new GetMacAddr(PHP_OS); 
    echo $mac->mac_addr;     $macc=$mac->mac_addr; //MAC的传值
    echo PHP_OS;
    //echo "1111";
    echo $macc;//传值后的显示  ?>
 

解决方案 »

  1.   

    死了心吧, 楼主百度谷歌了半天,就是为了搞懂php和js在哪里跑。
      

  2.   


    js是能实现的,但存在我上面说的两个问题,那想获得客户端内网ip和mac地址是不可能了?求指点,求确认
      

  3.   

    php只运行在服务器端。是无法获取客户端的东西的
      

  4.   

    恩,这个我知道,php直接获取的方式我已经放弃了,现在是想用js的方式,我的前端页面也是后缀为.php的,理论上js嵌入前端是可以执行的,但我这边js嵌入也不成~