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

php获取server端mac和clientmac的地址

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

获取servermac

<?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地址:

@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不能在本机測试,仅仅能用别的电脑訪问才干输出

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • exosip「建议收藏」

    exosip「建议收藏」exosip针对UA是对osip进行扩展,oSIP不提供不论什么高速产生请求消息和响应消息的方法,全部请求消息和响应消息的形成必须调用一组sipmessageapi来手动组装完毕,所以作者在osi

  • 漫画什么是分布式事务_分布式事务框架

    漫画什么是分布式事务_分布式事务框架点击上方“程序员小灰”,选择“置顶公众号”有趣有内涵的文章第一时间送达!————— 第二天 —————————————————假如没有分布式事务在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子:上图中包含了库存和订单两个独立的微服务,每个微服务维护了自己的数据库。在交易系统的业务逻辑中,一个商品在下单之前需要先调用库存服务,进行扣除库存,再调用订

    2022年10月23日
  • phpstorm 2022.01激活码【最新永久激活】

    (phpstorm 2022.01激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~E…

  • 基于python的电影推荐系统_复仇者联盟4终局之战纸牌

    基于python的电影推荐系统_复仇者联盟4终局之战纸牌喜欢看电影的朋友都知道,五一节之前上映了一部漫威号称十年布局的超级大片,据说老一代的英雄们有很多就要退出历史的舞台了,今天我们不是聊这一部电影的内容怎样,情节怎样,而是想基于爬虫来对豆瓣和猫眼电影两个网站中的影评数据进行采集,之后有时间的话会基于采集到的数据来进行文本分析。好了,其他的话就不多说了,详细的代码实现在之前的文章里面也已经给出来了,这里简单贴一下爬取到的数据…

  • Drupal教程

    Drupal教程http://www.joetsuihk.com/4_drupal_theming_views

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号