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

代码如下:

<?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地址,请注释掉
?>

(0)

相关推荐

  • ubuntu (linux)修改网卡名称命令

    linux 修改网卡 网卡名称eno16777736改为eth0 1.vim /etc/sysconfig/grub 然后,往这个文件中添加"net.ifnames=0 biosdevname=0"内容,如下图所示: 上图中,红框部分是我所添加的内容(注意它的位置). 紧接着,执行如下命令: view sourceprint? 1.grub2-mkconfig -o /boot/grub2/grub.cfg 效果如下: 然后,重启系统后查看网卡名称: 感谢阅读,希望能帮助到大家,谢谢大

  • Linux系统网卡设置教程

    由于做了虚拟机的克隆,发现克隆机和被克隆机的MAC地址相同了,下面我将要介绍一下linux中网卡的配置步骤,我使用的linux是CentOS release 6.9 (Final) 1.root用户编辑/etc/udev/rules.d/70-persistent-net.rules文件,找到mac地址重复的那个网卡并删除(这里是eth0),记住新生成的网卡eth1的mac地址,后面会用到,保存并退出 # vi /etc/udev/rules.d/70-persistent-net.rules

  • 自动生成linux网卡配置脚本分享

    补充:这是对于第一次添加的网卡有效,如果需要重复添加和删除后自动配置,需要更改脚本,改为根据ip a命令的信息来修改. 复制代码 代码如下: #!/bin/bash#update:2013-02-25#author:ihuotui#version 0.1 cdate=$(date '+%Y%m%d')num=$(ifconfig -a | grep eth | wc -l)echo "ethX=" $num >> ethX for ((n=1;n<${num};n++

  • linux系统单网卡绑定双IP的具体操作方法

    1. 进入目录:cd /etc/sysconfig/network-scripts/ 2. 使用vi命令编辑ifcfg-eth0,如下:# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth0BOOTPROTO=staticBROADCAST=192.168.0.255HWADDR=00:0C:29:25:96:A3#第1个IPIPADDR=192.168.0.2NETMASK=255.255.255.0NETWORK=19

  • 详解Linux查看实时网卡流量的几种方式

    在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查看Linux服务器的实时网卡流量. 1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众多统计数据.其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量. sar –n DEV 1 2 命令后面1 2 意思是:每一秒钟取1次值,取2次. DEV显示网络接口信息 另外,-n参数很有用,他有6个不同的开关:DEV | EDEV

  • linux 双网卡绑定网络设置方法

    设置linux主机的主机名和域名 /etc/hosts 例子 127.0.0.1 localhost.localdomain localhost 一般情况下hosts的内容关于主机名(hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开.其中#号开头的行做说明,不被系统解释. 第一部份:网络IP地址: 第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain 第二部份:主机名(主机名别名) ,其实就是主机名: 当然每行也

  • Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定的方法

    本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名以及Linux下多网卡绑定的知识 一.网卡高级命令 在之前的一篇随笔里Linux学习之CentOS(九)--Linux系统的网络环境配置,详细讲解了Linux系统下的网络环境配置等知识,我们了解了一些关于网络配置的一些基本命令.在这里将补充一些Linux系统下有关网卡的一些高级命令. ①mii-tool 命令 mii-tool命令我们可以用来查看网卡状态信息,包括了以太网连接是否正常,使用的是哪种型号的网卡等等 [root@xiaoluo

  • linux 网卡配置详解及实例

    linux网卡配置 DEVICE=物理设备名 IPADDR=IP地址 NETMASK=掩码值 NETWORK=网络地址 BROADCAST=广播地址 GATEWAY=网关地址 TYPE=Ethernet (网络类型) ONBOOT=[yes|no](引导时是否激活设备) USERCTL=[yes|no](非root用户是否可以控制该设备) PEERDNS=[yes|no] (如果通过 DHCP 获取 IP ,是否将 DNS 信息写入 /etc/resolv.conf (覆盖)) BOOTPROT

  • Linux服务器网卡流量查看方法 shell和Python各一枚

    有时我们需要较为实时的查看服务器上的网卡流量,这里我写了两个小脚本,一个用shell(先写的,一次只能查看一个网卡),另一个用Python(后写的,一次可查看多个网卡). 脚本中都用了while true"死循环",每隔10s从"/proc/net/dev"中取一次值并根据10s内的差值计算10s内的平均带宽:按ctrl+c停止执行.脚本兼容centos6和7 两个脚本都不太复杂,而且脚本中注释也比较细致,所以我就不过多解释脚本内容了. 直接上图上脚本: shell

  • Linux系统下双网卡配置实践总结

    前提: 1.不要在虚拟机上配置.不论是vm5还是vm6,本人试过多次,每次都是貌似成功,但用机器ping做断网试验时就会发现真相: 2.必须用同品牌同型号网卡.两块不一样的网卡,按照文档配置完毕后,即使从本机ping外部地址,也会发现网络似乎完全断了: 3.慎用service network restart.配置完毕,试验成功后,避免在双网卡机器上执行网络重启的操作,否则你会发现网络不通了,即使你手工再次执行ifenslave eth0 eth1也只能激活一块网卡. 下面说一下配置: 1.网卡配

随机推荐