Lucifer_wn

Lucifer_wn

这家伙有点懒,还没写个性签名!

  • 财富值1865
  • 威望值160
  • 总积分18475

个人信息

  • 2020-12-03 已签到
    连续签到4天,获得了20个金钱
  • 至少两台,一主一从

  • class MacUtil
    {
        var $result = array();
        var $macAddrs = array(); //所有mac地址
        var $macAddr;            //第一个mac地址
    
        public function __construct($OS = PHP_OS)
        {
            $this->GetMac($OS);
        }
    
        public function GetMac($OS)
        {
            switch (strtolower($OS)) {
                case "unix":
                    break;
                case "solaris":
                    break;
                case "aix":
                    break;
                case "linux":
                    $this->getLinux();
                    break;
                default:
                    $this->getWindows();
                    break;
            }
            $tem = array();
            foreach ($this->result as $val) {
                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", $val, $tem)) {
                    $this->macAddr = $tem[0];//多个网卡时,会返回第一个网卡的mac地址,一般够用。
                    break;
                    //$this->macAddrs[] = $temp_array[0];//返回所有的mac地址
                }
            }
            unset($temp_array);
            return $this->macAddr;
        }
    
        //Linux系统
        public function getLinux()
        {
            @exec("ifconfig -a", $this->result);
            return $this->result;
        }
    
        //Windows系统
        public function getWindows()
        {
            @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合法性校验 兼容大小写和(:-)
         * @param $mac
         * @return bool
         */
        public function mac_check($mac)
        {
            if (empty($mac)) {
                return FALSE;
            }
    
            $mac_reg = '/^([0-9a-fA-F]{2})((([:][0-9a-fA-F]{2}){5})|(([-][0-9a-fA-F]{2}){5}))$/i';
            return preg_match($mac_reg, $mac) == 1 ? TRUE : FALSE;
        }
    
        /**
         * mac 转化为数字表示
         * @param $mac_str
         * @return bool|number
         */
        public function macToInt($mac_str)
        {
            if (!$this->mac_check($mac_str)) return FALSE;
    
            $filter_mac = strtolower(preg_replace('/[:-]/', '', $mac_str));
            $mac_int = hexdec($filter_mac);
            if (is_numeric($mac_int))
                return $mac_int;
            else
                return FALSE;
        }
    
        /**
         * 数字转换为标准mac
         * @param $mac_int
         * @param string $chain ('-', ':')
         * @return bool|string
         */
        public function intToMac($mac_int, $chain = '-')
        {
            $max_value = 281474976710655;
            $min_value = 0;
            if (!is_numeric($mac_int) || $mac_int > $max_value || $mac_int < $min_value) return FALSE;
    
            $chain_list = array('-', ':');
            if (!in_array($chain, $chain_list)) return FALSE;
    
            $mac_hex = dechex($mac_int);
            $mac_str = strval($mac_hex);
            $mac_hex_len = strlen($mac_hex);
            if ($mac_hex_len < 12) {
                $add_len = 12 - $mac_hex_len;
                $add_str = '';
                while ($add_len--) {
                    $add_str .= '0';
                }
                $mac_str = $add_str . $mac_str;
            }
            $mac_arr = str_split($mac_str, 2);
            $mac_full_str = implode($chain, $mac_arr);
    
    
            if (!$this->mac_check($mac_full_str)) {
                return FALSE;
            } else {
                $res = str_replace("-", ":", strtoupper($mac_full_str));
                return $res;
            }
        }
    }
    
  • 2020-12-02 已签到
    连续签到3天,获得了15个金钱
  • 2020-12-01 已签到
    连续签到2天,获得了10个金钱
  • 2020-11-30 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的说说
    时间弹起了青春,听伤了路人。
    悲伤的名字,悲伤的话
  • 回复了 的说说
    哟哈哈哈,今天是个开心的日子呢
    无图言屌
  • 2020-11-18 已签到
    连续签到2天,获得了10个金钱
  •     /**
         * 上传文件至OSS
         * @param array $file 上传后的临时文件对象
         * @return string|int 返回地址或错误码
         * @throws
         */
        public function uploadFileOss(&$file)
        {
            if (empty($file)) return -1;
            if ($file['error'] != 0) {
                FunctionUtil::newLog($file['error'], 'error', 'uploadFile');
                return -2;
            }
    
            //设置文件黑名单
            if (strpos($file['name'], 'php') !== false) return -3;
    
            //设置文件白名单
            $fileNameArr = explode('.', $file['name']);
            if (!in_array(end($fileNameArr), ['jpg', 'gif', 'png', 'jpeg'])) return -3;
    
            //上传至OSS
            $oss = new Oss();
            $nameArr = explode('.', $file['name']);
            $suffix = end($nameArr); //获取后缀
            $object = 'images/' . date('Y-m', time()) . '/avatar/' . md5($file['tmp_name'] . uniqid()) . '.' . $suffix;
            $uploadOssResult = $oss->uploadFile($object, $file['tmp_name']);
    
            return $uploadOssResult['info']['url'];
        }
        
    #######下面方法是我自己封装的oss操作类###############################################################
        
        class Oss
    {
        //阿里云accessKeyId
        private $accessKeyId;
        //阿里云accessKeySecret
        private $accessKeySecret;
        //OSS endpoint
    //    private $endPoint = 'oss-cn-shenzhen-internal.aliyuncs.com'; //默认内网访问
        private $endPoint; //默认外网访问
        //OSS Bucket 存储空间名称
        private $bucket;
    
        public $ossClient;
    
        public function __construct()
        {
            //设置默认属性
            $ossConfig = \Yii::$app->params['taobao']['oss'];
            $this->setAccessKeyId($ossConfig['accessKeyId']);
            $this->setAccessKeySecret($ossConfig['accessKeySecret']);
            $this->setBucket($ossConfig['bucket']);
            $this->setEndPoint($ossConfig['extEndPoint']);
            if (!strpos($_SERVER['SERVER_NAME'], '52tktk')) { //不在线上服务器则外网访问
                $this->setEndPoint($ossConfig['extEndPoint']); //外网访问
            }
    
            //加载oss客户端对象
            $this->ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endPoint);
        }
    
        public function setAccessKeyId($accessKeyId)
        {
            $this->accessKeyId = $accessKeyId;
        }
    
        public function setAccessKeySecret($accessKeySecret)
        {
            $this->accessKeySecret = $accessKeySecret;
        }
    
        public function setEndPoint($endPoint)
        {
            $this->endPoint = $endPoint;
        }
    
        public function setBucket($bucket)
        {
            $this->bucket = $bucket;
        }
    
        public function getBucket()
        {
            return $this->bucket;
        }
    
        public function getShowUrl()
        {
            return 'https://' . $this->bucket . $this->endPoint;
        }
    
        /**
         * 文件上传,自动识别简单上传或者分片上传
         * @param string $object object名称
         * @param string $file 需要上传的本地文件的路径
         * @param array $options Key-Value数组
         * @return null
         * @throws OssException
         */
        public function uploadFile($object, $file, $options = null)
        {
            return $this->ossClient->multiuploadFile($this->bucket, $object, $file, $options);
        }
    
        /**
         * 字符串上传
         * @param string $object 需要上传的本地文件的路径
         * @param string $content 内容
         * @return null
         */
        public function putObject($object, $content)
        {
            return $this->ossClient->putObject($this->bucket, $object, $content);
        }
    }
    
18475/20000
资料完整度
30/100
用户活跃度
0/100

Ta的关注

4

Ta的粉丝

4

Ta的访客

20