php获取客户端网卡mac物理地址

发布时间:2019-09-25编辑:脚本学堂
如何用php取得用户的mac地址呢?这里分享一例代码,大家学习下php获取mac地址的方法,有需要的朋友参考下。

php编程中,获取到用户mac地址,就可以实现与客户电脑的绑定、防止垃圾注册等。
一个非常简单的类,使用时只要实例化后直接打印它的macAddr属性即可。

代码:

复制代码 代码示例:

<?php
class Getmac{
    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"]."system32ipconfig.exe";
            if(is_file($ipconfig)) {
                @exec($ipconfig." /all", $this->result);
            } else {
                @exec($_SERVER["WINDIR"]."systemipconfig.exe /all", $this->result);
                return $this->result;
            }
        }
    }
}

/*1.实现化类   2.直接访问它的macAddr属性*/
$getMac = new Getmac(PHP_OS);
echo $getMac->macAddr;
?>


>>> 更多php获取电脑mac物理地址的方法