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

前端之家收集整理的这篇文章主要介绍了php获取服务器端mac和客户端mac的地址支持WIN/LINUX前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

获取服务器mac
<div class="codetitle"><a style="CURSOR: pointer" data="22033" class="copybut" id="copybut22033" onclick="doCopy('code22033')"> 代码如下:

<div class="codebody" id="code22033">
<?PHP
/
获取网卡的MAC地址原码;目前支持WIN/LINUX系统
获取机器网卡的物理(MAC)地址
/
class GetmacAddr{
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->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;
}
}
}
}
?>

获取客户端mac地址:
<div class="codetitle"><a style="CURSOR: pointer" data="13747" class="copybut" id="copybut13747" onclick="doCopy('code13747')"> 代码如下:
<div class="codebody" id="code13747">
@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",$mac_array)){
$mac = $mac_array[0];
break;
}
}
echo $mac;

注:客户端获取的mac不能在本机测试,只能用别的电脑访问才能输出

原文链接:https://www.f2er.com/php/24642.html

猜你在找的PHP相关文章