您的位置:首页 > 编程语言 > PHP开发

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

2016-09-14 09:35 253 查看
//服务器端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; 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: