php获取服务器端mac和客户端mac的地址支持WIN/LINUX

获取服务器mac


代码如下:

<?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;
}
}
}
}
?>

获取客户端mac地址:


代码如下:

@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;

注:客户端获取的mac不能在本机测试,只能用别的电脑访问才能输出

(0)

相关推荐

  • php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例

    本文所述php实例可以完成获取局域网所有用户的电脑IP和主机名.及mac地址的功能,对于php程序设计人员有一定的参考借鉴价值.完整代码如下: <?php $bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP echo "本机IP:",$bIp,"\n"; echo "本机主机名:",gethostbyaddr($bIp),"\n\n\n"; //gethos

  • mac下安装nginx和php

    一.前话:1.1.环境选择:重新在mac上配置php,原本mac上就自带有apach.php以及pgsql,如果图简单的话,直接用就可以了,不过在安装前我仔细思考了一下几个问题:选apache还是nginx:两个我了解的都比较少,相对而言我接触nginx比较多,服务器用的也是nginx,没办法谁叫nginx负载高呢.为了更好的接触nginx的环境,我决定还是统一下环境,方便今后使用,这是这次的主要关键:安装php:Mac os自带了php,好像是5.3.8,版本比较落后,不过这不碍事,因为以前我

  • php/js获取客户端mac地址的实现代码

    废话不多讲,直接上代码吧! 复制代码 代码如下: <?php   class MacAddr {       public $returnArray = array();        public $macAddr; function __contruct($os_type=null){         if(is_null($os_type)) $os_type = PHP_OS;           switch (strtolower($os_type)){           case

  • mac下多个php版本快速切换的方法

    前言 php是为了快速构建一个web页面而迅速被大家广为接受的开源语言,通过不断发展已经有了很多的php开源系统,满足了目前大部分用户的站点需求.1995年初php诞生到现在已经存在多个版本,并且每个版本都属于一个系列,大多数网站源码都不能相互兼容,所以能够快速的切换PHP版本还是很实用的. 注意:要求所有php版本都是由brew安装 一.使用brew安装php多版本方法 # brew install php56 # brew install php70 二.安装切换工具 # brew inst

  • mac下Apache + MySql + PHP搭建网站开发环境

    首先为什不自己分别搭建Apache,PHP和MySql的环境呢?这样自己可以了解更多知识,说起来也更酷.可也许因为我懒吧,我是那种"既然有现成的,用就是了"的人.君子生非异也,善假于物也.两千年前的荀子就教导我们,要善于利用工具,我为什么非要自己一点一点配置呢? 哈哈,刚才说了windows下的PHP开发环境我用的是AppServ开发套件,Mac下呢,我用XAMPP.这是致力于推广Apache服务器的非营利性项目--Apache Friends推出的工具.其实XAMPP也有window

  • mac环境中使用brew安装php5.5.15

    Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具. Mac 自带ruby 所以安装起来很方便,同时它也会自动把git也给你装上.官方网站: http://brew.sh   安装方法: ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 使用以下方法可以查看brew是否安装成功,以及目前的版本: lionde

  • 推荐一款MAC OS X 下php集成开发环境mamp

    之前苦于mac上搭建本地服务器之艰辛,找寻好久都没找到一款类似windows上集成的本地服务器环境,诸如phpstudy,xampp,appserv,虽说xampp也有mac版,但不知为何不是Apache启动不了(估计端口被占了),就是MySql有问题,总是不如意. mamp 现在终于找到Mac上最好用的本地服务器软件了,一键安装Apache.MySQL.PHP.Postfix等服务器软件,简单方便,并且可以集中管理和调整运行环境,支持PHP多版本切换.Imagemagick图形处理工具.动态D

  • PHP获取MAC地址的具体实例

    本节分享的php代码,主要功能:获取机器网卡的物理(MAC)地址.代码: 复制代码 代码如下: <?php  /**   * 获取机器网卡的物理(MAC)地址* 目前支持WIN/LINUX系统   **/  class MacAddInfo {          var $return_array = array (); // 返回带有MAC地址的字串数组        var $mac_addr; function MacAddInfo($os_type) {          switch

  • Mac下搭建php开发环境教程

    Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例.主要内容包括: 启动Apache运行PHP安装MySQL使用phpMyAdmin配置PHP的MCrypt扩展库设置虚拟主机 启动Apache 有两种方法: 打开"系统设置偏好(System Preferences)" -> "共享(Sharing)" -> "Web共享(Web Sharing)"打开"终端(te

  • PHP获取MAC地址的函数代码

    复制代码 代码如下: <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = array(); // 返回带有MAC地址的字串数组 var $mac_addr; function GetMacAddr($os_type){ switch ( strtolower($os_type) ){ case "linux": $this->for

随机推荐