获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址(服务器端)

<?php
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; 
时间: 2024-10-10 11:48:32

获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址(服务器端)的相关文章

linux系统使用arp-scan检查是否存在IP地址冲突

如果前期没有做好IP地址规划,即使有IP地址统一不小心也会犯错!推荐服务器IP地址使用要登记明细,上次机房批量部署服务器,就将已再用的IP又分配给另一台服务器,还好对业务没有造成大的影响. 那么在给服务器配置IP的时候,怎么确保IP地址没有被使用,或者出现异常时有什么方法检测那?今天看到一个工具. arp-scan ,该工具在局域网内发送ARP数据包,来收集IP和MAC地址信息.如果一个IP地址对应多个MAC地址,就说明IP冲突了. 安装部署方法如下: 安装方法有两种: 首先安装软件依赖包 yu

VMware(二):虚拟机里Linux系统Redhat7更改网卡名

一.虚拟机里Linux系统Redhat7更改网卡名 目的: 在虚拟机里面redhat7的网卡名称默认比较长,比较复杂,例如eno16777736.eno33554992.eno50332216,不方便更改参数信息和辨认,设法将虚拟机里Linux系统网卡改名显得非常必要. 方案: 1.修改网卡配置文件更改网卡名称和参数信息 2.修改grub文件来禁用内核继续使用该命名规则 3.重新生成grub配置并更新内核参数 4.添加udev的规则 5.重启系统验证,是重启系统不是仅仅重启网卡配置服务 步骤:

Linux系统怎么查看网卡的UUID

在linux系统下查看网卡的UUID需要nmcli命令,但是该命令系统没有提供. 1.首先要查看哪个软件包提供了该命令 [[email protected] ~]# yum provides "*/nmcli"Loaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.pubyun.com * extras: ftp.sjtu.edu.cn * updates: mirr

java工具类,在Windows,Linux系统获取电脑的MAC地址、本地IP、电脑名

package com.cloudssaas.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.rege

vmware克隆linux系统,发现部署后的linux系统无法启动网卡

报错为Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization 错误原因,是因为linux网卡绑定了原mac地址导致 解决方法为 1.使用ifconfig -a 查看当前主机mac地址 2.修改eth0网卡硬件地址为当前地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0网卡和MAC地址对应并保存退出,其实在network-scr

克隆Linux系统之后的网卡问题

问题:VMware下克隆的LINUX使用ifconfig查看时无eth0网卡相应信息 环境:centOS6.5 原因分析: 系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中,而VMware会自动生成虚拟机的 mac地址.这样,由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改变,udev会自动将该mac对应于网卡eth1.以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称

linux系统做双网卡绑定

linux系统双网卡绑定: 在做双网卡绑定之前一定要备份配置文件! linux系统网卡配置文件位置:cd /etc/sysconfig/network-scripts cp ifcfg-eth0  ifcfg-bond0 例如我们需要绑定的网卡分别是ifcfg-eth0 对应eth0   ifcfg-eth1 对应eth1  这两个网卡! #vi ifcfg-bond0 需要修改四个地方:1.设备名称:DEVICE=bond0 2.配置IP地址,掩码,网关等信息:IPADDR=1.1.1.1NE

Linux系统获取命令帮助方法及简单命令介绍

Linux系统中的命令一般分两种:内部命令和外部命令 1.内部命令:内部命令又称为内置命令,在系统启动时就调入内存,是常驻内存的,所以执行效率较高. 2.外部命令:外部命令是系统的软件功能,用户需要时才从硬盘中读入内存. 区分内部命令和外部命令的方法:type命令         ~]# type      COMMAND            查找结果中显示为"内嵌"或者"buildin"字样的,则为内部命令:其余的结果都为外部命令: 内部命令的帮助获取方法:he

杏彩源码搭建与安装linux系统

2.安装linux系统: 预备知识 杏彩源码搭建QQ:2152876294 网址diguaym.com文件系统:文件数据在空间中排列组合的规则 1)硬盘:物理硬盘---->分区规划---->格式化---->读/写文档 毛胚楼层---->打隔断 ---->装修---->入住 2)如何使用硬盘: 传统的MBR(Master Boot Record)分区模式 1-4个主分区 或者 0-3个主分区+1个扩展分区(n个逻辑分区) ? 注意事项 – MBR分区表只能记录4个主分区,