Local Ethernet intelligence for engineers, security tooling, and automation.
Documentation · PyPI · Source
Etherlyzer turns IEEE registry data into a fast, local CLI and Python API for identifying, inspecting, validating, and normalizing Ethernet identifiers.
Identify the organization behind a MAC address, determine the exact IEEE allocation it belongs to, inspect its address range and assignment size, correlate related vendor allocations, resolve EtherTypes, and clean up MAC input — without relying on a third-party lookup API.
Why Etherlyzer?
Most MAC lookup tools stop at:
00:00:0c → Cisco
Etherlyzer goes further.
It understands the IEEE allocation behind the address:
- MA-L / OUI-24
- MA-M / OUI-28
- MA-S / OUI-36
- Legacy IAB allocations
- Company Identifiers (CID)
- EtherType protocol identifiers
And exposes details such as:
- organization and vendor identity,
- assignment prefix,
- registry type,
- address range,
- prefix and host bit lengths,
- allocation capacity,
- legacy status,
- related IEEE allocations belonging to the same organization.
All registry data is synchronized locally, so normal lookups stay local too.
Built for real workflows
Etherlyzer is useful anywhere Ethernet identifiers become data rather than something you inspect manually:
- network automation,
- asset discovery,
- NAC and inventory systems,
- NOC/SOC workflows,
- packet-analysis tooling,
- security investigations,
- bulk dataset enrichment,
- Python applications and scripts.
Install
Requires Python 3.14+.
pip install etherlyzer
etherlyzer --version
See what a MAC address really belongs to
etherlyzer inspect 00:00:0c:12:34:56
Organization
Name : Cisco Systems
Full Name : Cisco Systems, Inc
Address
170 WEST TASMAN DRIVE SAN JOSE CA US 95134-1706
Registry
IEEE Type : MA-L [MAC Address Block Large]
Assignment : 00-00-0c
Range : 00-00-0c-00-00-00 - 00-00-0c-ff-ff-ff
Legacy : False
Prefix Bits : 24 bits
Address Bits : 24 bits
Addresses : 16,777,216
Etherlyzer can also correlate the organization against its other known IEEE MAC allocations.
One toolkit, multiple jobs
# Identify a vendor
etherlyzer whois 00:11:22:33:44:55
# Inspect the exact IEEE allocation
etherlyzer inspect 00:00:0c:12:34:56
# Inspect an Ethernet protocol identifier
etherlyzer inspect -t protocol 0800
# Validate and diagnose malformed input
etherlyzer validate 00-11-22-33-44-55
# Normalize MAC representation
etherlyzer format 001122334455
# Cisco-style formatting
etherlyzer format 001122334455 -p . -s 4
# Process multiple values
etherlyzer whois -f macs.txt
etherlyzer validate -b
# Inspect local registry state
etherlyzer registries
# Refresh IEEE registry data
etherlyzer sync
Local by design
Etherlyzer maintains synchronized copies of the supported IEEE datasets on the local system.
That means routine lookups do not require sending MAC addresses or internal asset data to an external lookup service.
This makes Etherlyzer particularly useful for:
- internal infrastructure inventories,
- restricted environments,
- sensitive network datasets,
- high-volume lookups,
- offline analysis,
- automated enrichment pipelines.
Internet access is only required when the IEEE registry datasets need to be refreshed.
CLI and Python API
The command-line interface is built on the same underlying Python library.
Use Etherlyzer interactively from a terminal, compose it into shell workflows, or integrate its registry, lookup, validation, and formatting capabilities directly into Python applications.
Documentation
Full documentation is available at:
https://etherlyzer.docs.manjana.dev/
It includes:
- CLI reference
- Python API
- IEEE registry concepts
- MAC address concepts
- validation masks
- configuration
- registry synchronization
- examples and guides
For quick CLI help:
etherlyzer --help
etherlyzer <command> --help
License
Etherlyzer is released under the MIT License.
Metadata
Release files for etherlyzer 0.9.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| etherlyzer-0.9.4.tar.gz | 20.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| etherlyzer-0.9.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.9 kB
Release files / etherlyzer-0.9.4.tar.gz
| Download URL | etherlyzer-0.9.4.tar.gz |
|---|---|
| Size | 20.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
893577ec216202e21ed66852a7d6c0bc7c6a1e80d5a8452a17e9379ce02408bf
|
|
BLAKE2b-256 checksum How to use checksums |
7f073a199290c101d2e6c4340b685cfff20c1a953c480a63f630617004b0c39b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.14.2 Windows/11
|
Release files / etherlyzer-0.9.4-py3-none-any.whl
| Download URL | etherlyzer-0.9.4-py3-none-any.whl |
|---|---|
| Size | 25.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
590fa9a57e43a541ae70f354a50f2214592f96a74153395a989cad055ee27cd1
|
|
BLAKE2b-256 checksum How to use checksums |
f8c76b8c809a8409453c6145742664fdb066c50c398f7b077e1fb8b94abaa5ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.14.2 Windows/11
|