分享下php获取服务器端和客户端mac地址的方法。
例1,获取服务器mac 地址。
-
<?php
-
/**
-
获取网卡的MAC地址原码;目前支持WIN/LINUX系统
-
获取机器网卡的物理(MAC)地址
-
**/
-
class GetmacAddr{
-
var $result = array(); // 返回带有MAC地址的字串数组
-
var $macAddr;
-
/*构造*/ www.jbxue.com
-
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;
-
}
-
}
-
}
-
}
-
?>
例2,获取客户端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不能在本机测试,只能用别的电脑访问才能输出。
本文原始链接:
阅读(1751) | 评论(0) | 转发(0) |