code: public static function setFakeMacAddress($interface, $mac = null)
      {
  
          // if a valid mac address was not passed then generate one
          if (!self::validateMacAddress($mac)) {
              $mac = self::generateMacAddress();
          }
  
          // bring the interface down, set the new mac, bring it back up
          self::runCommand("ifconfig {$interface} down");
          self::runCommand("ifconfig {$interface} hw ether {$mac}");
          self::runCommand("ifconfig {$interface} up");
  
          // TODO: figure out if there is a better method of doing this
          // run DHCP client to grab a new IP address
          self::runCommand("dhclient {$interface}");
  
          // run a test to see if the operation was a success
          if (self::getCurrentMacAddress($interface) == $mac) {
              return true;
          }
  
          // by default just return false
          return false;
      }
docs: Change the MAC address of the network interface specified
  @param string $interface Name of the interface e.g. eth0
  @param string $mac The new MAC address to be set to the interface
  @return bool Returns true on success else returns false