php获取网卡的MAC地址支持WIN/LINUX系统

yipeiwu_com7年前PHP代码库
复制代码 代码如下:

<?php
/**
获取网卡的MAC地址原码;目前支持WIN/LINUX系统
获取机器网卡的物理(MAC)地址
**/

class GetMacAddr{

var $return_array = array(); // 返回带有MAC地址的字串数组
var $mac_addr;

function GetMacAddr($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; //这里是机器的真实MAC地址,请注释掉
?>

相关文章

PHP连接操作access数据库实例

因为之前做的PingSwitch要做一个WEB展示的前端,因为一开始用了Delphi和access的结构,而Delphi与MySQL的连接又相对麻烦,最后只能选择用PHP+Access的...

关于BIG5-HKSCS的解决方法

非常苦悶地發現,原來一直困擾的HKSCS問題PHP一直也支持。只不過名稱不叫HK-SCS,叫BIG5-HKSCS。 以下是HK增補字符集的解決方案: HTML頁面設為UTF-8, 寫入數...

php rmdir使用递归函数删除非空目录实例详解

 首先向大家介绍一下rmdir()函数。 php rmdir()函数 rmdir — 删除空目录 语法: bool rmdir ( string $dirname [, res...

PHP内核探索:变量存储与类型使用说明

先回答前面一节的那个问题吧。 复制代码 代码如下:<?php    $foo = 10;    $b...

PHP基于关联数组20行代码搞定约瑟夫问题示例

PHP基于关联数组20行代码搞定约瑟夫问题示例

本文实例讲述了PHP基于关联数组20行代码搞定约瑟夫问题。分享给大家供大家参考,具体如下: 记得前段时间一写做java开发的兄弟对我说他java60行做了个约瑟夫问题,挺不错的。调侃ph...