php 获取网卡物理MAC地址的实现方法

感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
经测试代码如下:

/**
 *  获取网卡物理(MAC)地址
 *
 * @param 
 * @author 编程之家 jb51.cc jb51.cc
 **/
class   GetMacAddr 
{ 
	var   $return_array   =   array();   //   返回带有MAC地址的字串数组 
	var   $mac_addr; 
	
	function   GetMacAddr($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   GetMacAddr(PHP_OS); 
echo   $mac-> mac_addr; 
?>


/***   代码来自编程之家 jb51.cc(jb51.cc)   ***/

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...