Home  >  Article  >  Backend Development  >  php获取服务器端mac和客户端mac的地址

php获取服务器端mac和客户端mac的地址

WBOY
WBOYOriginal
2016-06-23 13:57:071440browse

获取服务器mac

<?php /**  获取网卡的MAC地址原码;目前支持WIN/LINUX系统  获取机器网卡的物理(MAC)地址**/   class GetmacAddr{     var $result = array(); // 返回带有MAC地址的字串数组     var $macAddr;    /*构造*/    function __construct($osType){         switch ( strtolower($osType) ){             case "unix": break;            case "solaris": break;            case "aix": break;            case "linux": {                $this->for_linux_os();            }break;             default: {                 $this->for_windows_os();             }break;         }         $temp_array = array();         foreach($this->result 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->macAddr = $temp_array[0];                 break;             }         }         unset($temp_array);         return $this->macAddr;     }    /*linux系统中获取方法*/    function for_linux_os(){         @exec("ifconfig -a", $this->result);         return $this->result;     }    /*win系统中的获取方法*/    function for_windows_os(){         @exec("ipconfig /all", $this->result);         if ( $this->result ) {            return $this->result;        } else {             $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";            if(is_file($ipconfig)) {                @exec($ipconfig." /all", $this->result);            } else {                @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->result);                return $this->result;             }        }     } } ?>   

获取客户端mac地址:

@exec("arp -a",$array); //执行arp -a命令,结果放到数组$array中        foreach($array as $value){            //匹配结果放到数组$mac_array            if(strpos($value,$_SERVER["REMOTE_ADDR"]) && preg_match("/(:?[0-9A-F]{2}[:-]){5}[0-9A-F]{2}/i",$value,$mac_array)){                $mac = $mac_array[0];                break;            }        }        echo $mac;
注:客户端获取的mac不能在本机测试,只能用别的电脑访问才能输出

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn