首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >php获取server端mac和clientmac的地址[通俗易懂]

php获取server端mac和clientmac的地址[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-07 19:47:51
发布2022-07-07 19:47:51
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是全栈君。

获取servermac

代码语言:javascript
代码运行次数:0
运行
复制
<?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; 
            }
        } 
    } 
} 
?>   

获取clientmac地址:

代码语言:javascript
代码运行次数:0
运行
复制
@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;

注:client获取的mac不能在本机測试,仅仅能用别的电脑訪问才干输出

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116355.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档