zl程序教程

您现在的位置是:首页 >  系统

当前栏目

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

LinuxPHP地址客户端Mac 获取 支持 win
2023-06-13 09:15:26 时间
获取服务器mac
复制代码代码如下:

<?php
/**
获取网卡的MAC地址原码;目前支持WIN/LINUX系统
获取机器网卡的物理(MAC)地址
**/
classGetmacAddr{
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->resultas$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系统中获取方法*/
functionfor_linux_os(){
@exec("ifconfig-a",$this->result);
return$this->result;
}
/*win系统中的获取方法*/
functionfor_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($arrayas$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不能在本机测试,只能用别的电脑访问才能输出