代码如下:
<BR /><?php <BR />/** <BR />获取网卡的MAC地址原码;目前支持WIN/LINUX系统 <BR />获取机器网卡的物理(MAC)地址 <BR />**/ <BR />class GetmacAddr{ <BR />var $result = array(); // 返回带有MAC地址的字串数组 <BR />var $macAddr; <BR />/*构造*/ <BR />function __construct($osType){ <BR />switch ( strtolower($osType) ){ <BR />case "unix": break; <BR />case "solaris": break; <BR />case "aix": break; <BR />case "linux": { <BR />$this->for_linux_os(); <BR />}break; <BR />default: { <BR />$this->for_windows_os(); <BR />}break; <BR />} <BR />$temp_array = array(); <BR />foreach($this->result as $value){ <BR />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, <BR />$temp_array ) ){ <BR />$this->macAddr = $temp_array[0]; <BR />break; <BR />} <BR />} <BR />unset($temp_array); <BR />return $this->macAddr; <BR />} <BR />/*linux系统中获取方法*/ <BR />function for_linux_os(){ <BR />@exec("ifconfig -a", $this->result); <BR />return $this->result; <BR />} <BR />/*win系统中的获取方法*/ <BR />function for_windows_os(){ <BR />@exec("ipconfig /all", $this->result); <BR />if ( $this->result ) { <BR />return $this->result; <BR />} else { <BR />$ipconfig = $_SERVER["WINDIR"]."system32ipconfig.exe"; <BR />if(is_file($ipconfig)) { <BR />@exec($ipconfig." /all", $this->result); <BR />} else { <BR />@exec($_SERVER["WINDIR"]."systemipconfig.exe /all", $this->result); <BR />return $this->result; <BR />} <BR />} <BR />} <BR />} <BR />?> <BR /> <BR />获取客户端mac地址: <BR /><span><U></U></span> 代码如下:<BR />@exec("arp -a",$array); //执行arp -a命令,结果放到数组$array中 <BR />foreach($array as $value){ <BR />//匹配结果放到数组$mac_array <BR />if(strpos($value,$_SERVER["REMOTE_ADDR"]) && preg_match("/(:?[0-9A-F]{2}[:-]){5}[0-9A-F]{2}/i",$value,$mac_array)){ <BR />$mac = $mac_array[0]; <BR />break; <BR />} <BR />} <BR />echo $mac; <BR /> <BR />注:客户端获取的mac不能在本机测试,只能用别的电脑访问才能输出
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!