macaddress
Like ``ipaddress``, but for hardware identifiers such as MAC addresses.
Decision gist · record as of 2026-08-14
Yes, if you need straightforward MAC address parsing and conversion in a stable, dependency-free package. The library is production-ready for its core use case and carries no security vulnerabilities. However, be aware that it is abandoned and will not receive updates or bug fixes; only install if you are comfortable maintaining a fork or accepting the risk of unpatched issues on newer Python versions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction install with no runtime dependencies.
- Last release was 1379 days ago and the repository is marked abandoned, so expect no active maintenance or bug fixes going forward.
License · maintenance · safety
0BSD (permissive) — Licensed under 0BSD (permissive), so you can use, modify, and distribute freely with minimal restrictions.
last release 2022-11-04 (1379 days) · last repo commit 2023-05-26 · 21 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 189,877 downloads/mo, #9,920 on PyPI
Alternatives
Verify before relying
pip install macaddress
import macaddress
mac = macaddress.EUI48('01-23-45-67-89-ab')
print(mac) # EUI48('01-23-45-67-89-AB')
print(bytes(mac))
print(int(mac))- Whether the abandoned status and 1379-day gap since last release poses risk for undiscovered bugs or compatibility issues with newer Python versions.
- Whether the library's feature set (EUI-48, EUI-64, OUI, CDI32, etc.) covers all hardware identifier types needed for your use case.
- Actual monthly download volume and real-world adoption patterns beyond the top-15000 tier classification.
What it is and what it does
macaddress is a lightweight library for working with hardware identifiers like MAC addresses, inspired by Python's built-in ipaddress module. It provides classes for common types (EUI48/MAC, EUI64, OUI) and allows you to parse these identifiers from multiple string formats (colon-separated, dash-separated, dot-separated, or raw hex), convert them to and from bytes or integers, and perform equality and ordering comparisons. You can also define custom hardware address types by subclassing the base HWAddress class.
The library has no runtime dependencies and installs cleanly. However, it has been abandoned since its latest release on 2022-11-04 with no commits or updates since 2023-05-26, so it receives no active maintenance. It is marked as Production/Stable in its classifiers, making it suitable for stable, self-contained use cases where you do not expect ongoing support.
Use it for
- Validate and normalize MAC addresses from user input or network device data before storing or processing.
- Convert MAC addresses between common string formats (colon, dash, dot, hex) for compatibility with different tools or protocols.
- Extract the OUI (Organizationally Unique Identifier) from a MAC address to identify the hardware manufacturer.
- Parse and compare hardware identifiers in network monitoring, device inventory, or DHCP/ARP tools.
- Define custom hardware address types (e.g., InfiniBand, CDI) for specialized networking or embedded systems work.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need straightforward MAC address parsing and conversion in a stable, dependency-free package.
The library is production-ready for its core use case and carries no security vulnerabilities. However, be aware that it is abandoned and will not receive updates or bug fixes; only install if you are comfortable maintaining a fork or accepting the risk of unpatched issues on newer Python versions.
Install
macaddress on PyPI
Before you install
Low friction install with no runtime dependencies. Last release was 1379 days ago and the repository is marked abandoned, so expect no active maintenance or bug fixes going forward.
License in practice
Licensed under 0BSD (permissive), so you can use, modify, and distribute freely with minimal restrictions.
Quickstart
pip install macaddress
import macaddress
mac = macaddress.EUI48('01-23-45-67-89-ab')
print(mac) # EUI48('01-23-45-67-89-AB')
print(bytes(mac))
print(int(mac))
Verify before relying
- Whether the abandoned status and 1379-day gap since last release poses risk for undiscovered bugs or compatibility issues with newer Python versions.
- Whether the library's feature set (EUI-48, EUI-64, OUI, CDI32, etc.) covers all hardware identifier types needed for your use case.
- Actual monthly download volume and real-world adoption patterns beyond the top-15000 tier classification.
Package facts
| License | 0BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 1,379 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 189,877 / month, #9,920 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: macaddress-2.0.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “MAC address parsing”
- macaddressParses, validates, and converts MAC addresses and other hardware…
- netaddrRepresents and manipulates IPv4, IPv6, MAC addresses and related…
- getmacRetrieves MAC addresses of local network interfaces and remote hosts…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also aiooui · mac-vendor-lookup · randmac · graycode · netaddr · getmac · pyap2 · pyap · netifaces-plus · netifaces