PHP获取MAC地址的函数代码

复制代码 代码如下:

  <?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;

  ?>