PHPackages                             sikofitt/generate-mac - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sikofitt/generate-mac

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

sikofitt/generate-mac
=====================

Generates dummy mac addresses

2.1.0(7mo ago)146[1 issues](https://github.com/sikofitt/generate-mac/issues)GPL-3.0-onlyPHPPHP &gt;=8.2CI passing

Since Jan 20Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/sikofitt/generate-mac)[ Packagist](https://packagist.org/packages/sikofitt/generate-mac)[ RSS](/packages/sikofitt-generate-mac/feed)WikiDiscussions 2.1.x-dev Synced 2mo ago

READMEChangelog (1)Dependencies (2)Versions (7)Used By (0)

sikofitt/generate-mac
=====================

[](#sikofittgenerate-mac)

### Small library to generate unique private mac addresses

[](#small-library-to-generate-unique-private-mac-addresses)

#### Install

[](#install)

Requires PHP &gt;=8.2, For versions compatible with PHP 7.x use the 0.x branch.

[composer](https://getcomposer.org)

```
composer require sikofitt/generate-mac
```

#### Usage

[](#usage)

```
use Sikofitt\GenerateMac\Mac;

$mac = new Mac(); // default separator is ':'
// or
$mac->setSeparator(Mac::SEPARATOR_COLON);
$address = $mac->getAddress(); // ab:cd:ef:01:23:45

$mac = new Mac(Mac::SEPARATOR_DASH);
// or
$mac->setSeparator(Mac::SEPARATOR_DASH);
$address = $mac->getAddress(); // ab-cd-ef-01-23-45

$mac = new Mac(Mac::SEPARATOR_NONE);
// or
$mac->setSeparator(Mac::SEPARATOR_NONE);
$address = $mac->getAddress(); // abcdef012345
```

If you don't care that it is unique you can remove the check for private mac prefixes.

```
$mac = new Mac(Mac::SEPARATOR_COLON, false);
// or
$mac->setUnique(false);

$address = $mac->getAddress();

// '52:54:00:ab:cd:ef',  QEMU virtual NIC prefix 52:54:00
// It's really not likely there will be a collision though.
```

Generate multiple mac addresses

```
$addresses = $mac->getAddresses(10);

var_dump($addresses);
/*
 *   array (
 *       0 => '8a:20:0b:b7:c4:62',
 *       1 => '56:7d:47:56:e8:bd',
 *       2 => '2a:ae:7b:44:6f:9d',
 *       3 => '6a:36:1a:7c:04:3a',
 *       4 => '3a:3d:93:f5:a6:12',
 *       5 => '8a:85:ce:11:2c:a2',
 *       6 => '06:54:6f:b1:11:48',
 *       7 => 'c6:fe:9d:86:38:dd',
 *       8 => 'ba:39:b3:a2:a1:fa',
 *       9 => '32:73:c0:b3:62:27',
 *   );
 */

// if you call this with 1 as the count it will still
// return an array [0 => '32:73:c0:b3:62:27']
```

#### Using the console component

[](#using-the-console-component)

The console script requires [symfony/console](https://symfony.com/doc/current/components/console.html "Symfony Console Component")

```
user@localhost:~/generate-mac$ bin/generate-mac --count (int) --output (json|plain|string) --separator (none|colon|dash)
```

- --count Generate {count} mac addresses
- --output Output in selected format
    - string: (default) Outputs the mac address(es) with formatting
    - plain: Outputs the mac address(es) with no formatting
    - json: Output the mac address(es) in json format
- --separator Outputs with the selected operator
    - colon: ':' (default)
    - dash: '-'
    - none: ''

*See bin/generate-mac --help*

#### Test

[](#test)

```
user@localhost:~/generate-mac$ vendor/bin/phpunit
```

#### License

[](#license)

[GPL-3.0](LICENSE)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance54

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~569 days

Total

4

Last Release

227d ago

Major Versions

0.x-dev → 1.x-dev2023-06-14

1.x-dev → 2.1.02025-09-24

PHP version history (3 changes)0.x-devPHP &gt;=7.3

1.x-devPHP ^8.2

2.1.0PHP &gt;=8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/ca20b56d1cdac9dab6ef37ad857e2b924216ac7cbc8c5233846437a303ac837a?d=identicon)[sikofitt](/maintainers/sikofitt)

---

Top Contributors

[![sikofitt](https://avatars.githubusercontent.com/u/3673285?v=4)](https://github.com/sikofitt "sikofitt (42 commits)")

---

Tags

generatemacmacaddressnetworkphpphp8randomgenerateMACMac Addressmedia access control

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/sikofitt-generate-mac/health.svg)

```
[![Health](https://phpackages.com/badges/sikofitt-generate-mac/health.svg)](https://phpackages.com/packages/sikofitt-generate-mac)
```

###  Alternatives

[paragonie/random_compat

PHP 5.x polyfill for random\_bytes() and random\_int() from PHP 7

8.2k655.0M404](/packages/paragonie-random-compat)[ircmaxell/random-lib

A Library For Generating Secure Random Numbers

84130.2M119](/packages/ircmaxell-random-lib)[sqids/sqids

Generate short YouTube-looking IDs from numbers

5781.4M33](/packages/sqids-sqids)[mistic100/randomcolor

Generate attractive random colors

2431.4M6](/packages/mistic100-randomcolor)[pragmarx/random

Create random chars, numbers, strings

714.2M5](/packages/pragmarx-random)[paragonie/random-lib

A Library For Generating Secure Random Numbers

703.3M26](/packages/paragonie-random-lib)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
