Skip to main content

A command-line tool to spoof your network interface's MAC address on Linux systems.

Project description

MAC Address Spoofer

CI (master) PyPI Version PyPI Downloads

A command-line tool to spoof your network interface's MAC address on Linux systems.

MacSpoofer Demo

What is a MAC Address?

A Media Access Control (MAC) address is a unique identifier assigned to a network interface controller (NIC) for use as a network address in communications within a network segment. This identifier is used in most IEEE 802 networking technologies, including Ethernet, Wi-Fi, and Bluetooth.

Changing your MAC address can be useful for:

  • Privacy - Prevent tracking across networks
  • Testing - Simulate different network devices
  • Bypassing restrictions - Some networks filter by MAC address

MAC Address Structure

A MAC address is a 12-digit hexadecimal number (6 bytes), typically represented in colon-hexadecimal notation (e.g., 00:1A:2B:3C:4D:5E).

Bytes Name Description
First 3 bytes OUI (Organizationally Unique Identifier) Identifies the manufacturer
Last 3 bytes NIC (Network Interface Controller) Device-specific identifier

Features

  • 🎲 Random MAC generation - Generate safe, locally-administered unicast addresses
  • 🏭 Vendor spoofing - Mimic devices from Samsung, Apple, Intel, Microsoft, Huawei, Google, or Cisco
  • 🖥️ Interactive TUI - Easy to use text interface
  • Auto mode - Non-interactive operation for scripts
  • 🔧 CI mode - Designed for automated testing pipelines

Installation

Via pip (recommended)

pip install macspoofer

From source

chmod +x setup.sh
sudo ./setup.sh

From a CI build artifact

Every run of the MacSpoofer CI workflow builds the package and uploads the resulting wheel as a GitHub Actions artifact named macspoofer-wheel. To install a pre-release build:

  1. Open the relevant workflow run on the Actions tab.
  2. Download the macspoofer-wheel artifact and unzip it.
  3. Install the wheel with pip:
pip install ./macspoofer-*.whl

Usage

Find Your Interface Name

ifconfig -a
# or
ip link show

Interactive Mode (TUI)

sudo -E macspoofer -i <interface>
# or
sudo -E python3 main.py -i <interface>

Auto Mode (Non-Interactive)

sudo -E macspoofer -i <interface> --auto
# or
sudo -E python3 main.py -i <interface> --auto

Command Line Options

Option Description
-i <interface> Network interface name (e.g., wlan0, eth0) [Required]
--auto Non-interactive mode: generate and apply a random unicast MAC
--ci CI mode: for automated testing
--help Show help message and usage examples
--version Show version information

Programmatic Usage

You can also use macspoofer as a Python library:

Generate a Random MAC Address

from macspoofer.utils.random_utils import generate_safe_unicast_mac

mac = generate_safe_unicast_mac()
print(mac)  # e.g. "a6:3f:12:cb:90:01"

Search & Browse Vendors

from macspoofer.utils.vendors import VendorRegistry

# Total vendors in the database
print(VendorRegistry.vendor_count())

# Search by name (case-insensitive)
results = VendorRegistry.search("Raspberry")
print(results)

# Get OUI prefixes for a specific vendor
ouis = VendorRegistry.get_ouis_for_vendor("Apple")
print(ouis[:3])  # ['58:e6:ba', '8c:98:6b', ...]

Generate a Vendor-Specific MAC

from macspoofer.spoofer import generate_mac_for_vendor

mac = generate_mac_for_vendor("Samsung")
print(mac)  # e.g. "e4:7a:11:2f:c8:5d"

Spoof an Interface (requires root)

import asyncio
from macspoofer.modules.interface import NetworkInterface
from macspoofer.spoofer import spoof_mac_address
from macspoofer.utils.random_utils import generate_safe_unicast_mac

async def main():
    interface = NetworkInterface("wlan0")
    mac = generate_safe_unicast_mac()
    await spoof_mac_address(interface, mac, require_confirmation=False)

asyncio.run(main())

License

MIT License


© 2022-2026 Daniel Kirshner. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

macspoofer-1.0.7.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

macspoofer-1.0.7-py3-none-any.whl (351.7 kB view details)

Uploaded Python 3

File details

Details for the file macspoofer-1.0.7.tar.gz.

File metadata

  • Download URL: macspoofer-1.0.7.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for macspoofer-1.0.7.tar.gz
Algorithm Hash digest
SHA256 5cfe85f43141526f4cde9f6c90d4b780052003ef3d448a6518b98386498b0c5b
MD5 30b45fb345d7eebaf0084f7790acdc44
BLAKE2b-256 e8706da0ee550d3e1e769fd52f06810c03a6aa7be0e55a87c76b2dd0ba12dc65

See more details on using hashes here.

Provenance

The following attestation bundles were made for macspoofer-1.0.7.tar.gz:

Publisher: publish.yml on DanielKirshner/MacSpoofer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file macspoofer-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: macspoofer-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 351.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for macspoofer-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0bd25255b3b73e0c6f0f4593097d71e10048fe9660527d81fddb87da9c89ab76
MD5 08afe6c25b676ad8fbfe3dc8efeebfa6
BLAKE2b-256 d6caf3d5968ff84d566201aeb2c3e555e63d653af97e2084226f973a8b35d996

See more details on using hashes here.

Provenance

The following attestation bundles were made for macspoofer-1.0.7-py3-none-any.whl:

Publisher: publish.yml on DanielKirshner/MacSpoofer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page