废话不多话,直接上代码

<?php

class GetMac
{
public $result = array();
public $macAddrs = array(); //所有mac地址
public $macAddr; //第一个mac地址 function __construct($OS)
{
$this->GetMac($OS);
} 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系统
function getLinux()
{
@exec("ifconfig -a", $this->result);
return $this->result;
} //Windows系统
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;
}
}
}
} $obj = new GetMac(PHP_OS);
print_r($obj->result);
echo $obj->macAddr;
//获取客户端
//$result=`arp -a $REMOTE_ADDR`;
//$result=`nbtstat -a $REMOTE_ADDR`;
//print_r($result);
exit;
  

代码到此为止,下面是验证.

接下来我们来验证下,windows上执行

 ipconfig/all  

查看下

执行php代码查看下:

注意,代码用的稍微老的语法,根据实际情况自行修改下.

果然,收工,睡觉了

PHP获取机器mac代码的更多相关文章

  1. php获取机器网卡的物理(MAC)地址

    <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = ...

  2. 获取机器网卡的物理(MAC)地址

    <?php  /**   * 获取机器网卡的物理(MAC)地址* 目前支持WIN/LINUX系统   * 编辑: www.jbxue.com**/  class MacAddInfo {     ...

  3. PHP获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址

    声明转换于其它博客当中的. <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $ ...

  4. 获取客户机MAC地址 根据IP地址 获取机器的MAC地址 / 获取真实Ip地址

    [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref ...

  5. 转: 通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号

    最近由于项目的需要,需要在程序中获取机器的硬盘序列号和MAC地址等信息,在C#下,可以很容易的获得这些信息,但是在C++程序中感觉比较麻烦.经过百度,发现很多大虾都是通过WMI来获取这些硬件信息的,网 ...

  6. (转)通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号

    最近由于项目的需要,需要在程序中获取机器的硬盘序列号和MAC地址等信息,在C#下,可以很容易的获得这些信息,但是在C++程序中感觉比较麻烦.经过百度,发现很多大虾都是通过WMI来获取这些硬件信息的,网 ...

  7. php获取网卡MAC地址源码

    <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = ...

  8. Python 获取 网卡 MAC 地址

    /*********************************************************************** * Python 获取 网卡 MAC 地址 * 说明: ...

  9. python获取机器信息脚本(网上寻找的)

    获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...

随机推荐

  1. C++中添加配置文件读写方法

    比如有一个工程,一些变量有可能需要不时的修改,这时候可以通过从配置文件中读取该数值,需要修改时只需要修改配位文件即可. 比如有一个这样的变量m_nTest; 我么可以写两个函数ReadConfig() ...

  2. bzoj1467 Pku3243 clever Y

    1467: Pku3243 clever Y Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 313  Solved: 181[Submit][Status ...

  3. 洛谷P3048 [USACO12FEB]牛的IDCow IDs

    P3048 [USACO12FEB]牛的IDCow IDs 12通过 67提交 题目提供者lin_toto 标签USACO2012 难度普及/提高- 时空限制1s / 128MB 提交  讨论  题解 ...

  4. cpu的核数

      相信大多数的人都知道CPU区分单核.双核.四核.六核.八核等,一些电脑小白肯定认为核心越多肯定性能越强,但是不少装机用户发现,有的CPU型号虽然是双核,但是要比一些四核还要贵,很多人感到迷惑,那么 ...

  5. libevent学习文档(二)eventbase相关接口和参数

    Setting up a default event_base The event_base_new() function allocates and returns a new event base ...

  6. php 三元运算符简洁用法

    <?php header('Content-type:text;charset=utf8'); $a = 'aaaa'; $b = $a ?:'; $c = $a ? $a : '; //这个和 ...

  7. AES和RSA混合加密技术在网络数据传输中的应用

    原文:http://www.fx361.com/page/2017/0110/519967.shtml          摘要:文章通过分析和比较AES加密算法和RsA加密算法的实现过程和各自的特点, ...

  8. javaFX8初探(环境搭建)

    1:下载java8  Oracle官网2:下载eclipse4.4 eclipse官网3:安装e(fx)clipse插件 http://download.eclipse.org/efxclipse/u ...

  9. MingW和MSVC默认的编码方式不一样

    同一份源代码,源文件编码格式为UTF-8: string tmp = "我"; ;i<tmp.size();++i) { printf("%0x ",tm ...

  10. NOIP模拟赛10

    T1 [HAOI2010]软件安装 https://daniu.luogu.org/problem/show?pid=2515 树上背包,如果有i必须有j,j作为i的父节点 O(nm²) #inclu ...