• php程序获取客户端MAC地址 何苦


    <?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;
    ?>
    
  • 相关阅读:
    mbedtls安装与入门【转】
    SpringAop代理对象调用过程(八)
    SpringAOP理解-代理对象创建(七)
    NIO与零拷贝
    NIO实现群聊系统
    SpringAOP概述(六)
    NIO简介以及三大组件(BufferChannelSelector)基本使用
    BIO基本介绍以及使用
    Netty简介
    Spring循环依赖解决(五)
  • 原文地址:https://www.cnblogs.com/fuqian/p/16883648.html
Copyright © 2020-2023  润新知