加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-12 20:11:38 所属栏目:PHP教程 来源:网络整理
导读:获取服务器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
<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"]."system32ipconfig.exe";
if(is_file($ipconfig)) {
@exec($ipconfig." /all",$this->result);
} else {
@exec($_SERVER["WINDIR"]."systemipconfig.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不能在本机测试,只能用别的电脑访问才能输出

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读