<?php 
/**  
* 获取机器网卡的物理(MAC)地址
* 目前支持WIN/LINUX系统  
* 编辑: www.jbxue.com
**/ 
class MacAddInfo {     
    var $return_array = array (); // 返回带有MAC地址的字串数组   
    var $mac_addr; 
     
    function MacAddInfo($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 MacAddInfo(PHP_OS);   
//echo $mac->mac_addr;   
?>

php 获取mac地址的更多相关文章

  1. php怎么获取mac地址?

    如何用php获取mac地址呢?大家知道mac地址是电脑在全球范围的唯一标识,所以这个就非常实用,比如说要做一个投票功能,那mac地址是必不可少 的,如果单纯的靠ip地址来判断这个肯定是不准确的,水分太 ...

  2. C# 获取MAC地址

    /********************************************************************** * C# 获取MAC地址 * 说明: * 在C#中获取本 ...

  3. c++ windows 获取mac地址

    c++ windows 获取mac地址 GetAdaptersInfo 用windows api获取mac地址和硬盘id编号 aa

  4. python 获取 mac 地址 的代码

    python 获取 mac 地址 的例子,有需要的朋友可以参考下. #!/bin/python import os import re def GetMac():     if os.name ==  ...

  5. Java根据ip地址获取Mac地址,Java获取Mac地址

    Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...

  6. android获取Mac地址和IP地址

    获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法) //根据Wifi信 ...

  7. js 获取mac地址

    js 获取mac地址 function MacInfo(){ var locator =new ActiveXObject ("WbemScripting.SWbemLocator" ...

  8. 在Web中获取MAC地址

    很多时候都很难琢磨客户在想什么,也许是自己业务经验不足,也许是客户要显示出他在软件方面也非常的专业.记得以前听过一个故事,说一个富人想娶个媳妇,然后他比较钟意的有三个女人,然后就想从三个女人中选一个, ...

  9. Java -- 获取MAC地址

    啦啦啦 package com.xindatai.common.util; import java.io.InputStream; import java.util.regex.Matcher; im ...

  10. 使用 SendARP 获取 MAC 地址(使用SendARP API函数,很多相关文章)

    ARP 协议地址解析协议(ARP)是通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议.ARP 最初在 1982 年的 RFC 826 中提出并纳入互联网标准 STD 3 ...

随机推荐

  1. 常用jQuery代码03

    1.查看浏览器信息 navigator.userAgent 检索浏览器信息包括哪些字符 例如: if (navigator.userAgent.toLowerCase().indexOf(" ...

  2. Face The Right Way---hdu3276(开关问题)

    题目链接:http://poj.org/problem?id=3276 题意:n牛头排成一排,每头牛两个状态,向前或向后,为了让所有的牛都向前,现在有一个机器 每次 能控制连续K头牛转换自己的状态,求 ...

  3. Selenium2学习-000-Selenium2初识

    什么是 Selenium?Selenium 是 ThoughtWorks 专门为 Web 应用程序编写的一个验收测试工具,是一种 Web 测试框架,开拓了验证 Web 应用程序的新方案,使您可在 We ...

  4. LeetCode Course Schedule II

    原题链接在这里:https://leetcode.com/problems/course-schedule-ii/ 题目: There are a total of n courses you hav ...

  5. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  6. thinkphp 模板调用数据

    我自己写了个简单的模板是这样的 <!DOCTYPE html> <html> <head> <style> div { width:230px; hei ...

  7. activity传值到fragment

    1,初始化fragment时候: @Override public void onAttach(Activity activity) { /** 注册广播 */  initBroadcast(); s ...

  8. Java控制语句——if语句

    Java控制语句分为三大类:①顺序结构:②选择结构:③循环结构. 选择结构又分为:①单选择结构:②双选择结构:③多选择结构. 主要涉及: if_else , switch , while , brea ...

  9. Linux下原子性操作,类似Windows下的InterLockedXXX

    其中,这些操作的操作数(type) 可以是1,2,4或8字节长度的int类型,即: int8_t / uint8_t int16_t / uint16_t int32_t / uint32_t int ...

  10. C#并发处理-锁OR线程安全?

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客! 当然,题外话说多了,咱进入正题! 背景 基于任务的程序设计.命令式数据并行和任务并行都要求能够支持并发更新的数组.列表和集合 ...