欢迎光临
我们一直在努力

php7-获取服务器网卡的物理(MAC)地址

在日常的PHP项目中,我们可能有时需要获取MAC地址来写一些验证功能,今天就把获取服务器网卡的物理(MAC)地址的一个php7的类分享给大家,本类暂时只支持windows和linux系统的mac地址获取。

<?php 
	/** 
	获取网卡的MAC地址原码;目前支持WIN/LINUX系统 
	获取机器网卡的物理(MAC)地址
	支持php7.2
	**/ 
	class GetMacAddr{ 
		var $return_array = array(); // 返回带有MAC地址的字串数组 
		var $mac_addr; 
		function __construct($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; //08-62-66-28-E3-B6
赞(0) 打赏
原创文章转载请注明出处:爱编程 » php7-获取服务器网卡的物理(MAC)地址
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱编程、一个运维兼程序员的博客!

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏