ForHosting KIT · Developer Utilities

MAC address type analyzer

A MAC address carries more information than a device identifier alone. The two least significant bits of its first octet indicate whether the address identifies an individual interface or a group, and whether its assignment is universal or local.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

This analyzer validates a 48-bit address, normalizes its notation, exposes the first octet in hexadecimal, decimal, and binary, and reports both classifications with the decoded bit values. It is useful for network troubleshooting, configuration review, documentation, and learning exactly how address flags work.

Read the two flags in the first octet

A conventional 48-bit MAC address contains six octets, but its classification depends on only two bits in the first one. The least significant bit is the individual/group bit, commonly shortened to I/G. When it is zero, the address is individual and therefore unicast. When it is one, the address is a group address and therefore multicast. The next bit is the universal/local bit, often shortened to U/L. Zero indicates a universally administered address, while one indicates a locally administered address. This analyzer parses the first octet, displays its complete eight-bit binary representation, and returns both low bits separately so the conclusion can be audited instead of merely accepted. Remember that binary bit positions are counted from the right in this context. For example, a first octet ending in binary 10 is unicast because the rightmost bit is zero, but locally administered because the next bit is one. The remaining six bits do not determine these two classifications.

Enter a valid 48-bit MAC address

The input must represent exactly six octets, with every octet containing two hexadecimal digits. Common notations are accepted: colon-separated values such as 02:42:AC:11:00:02, hyphen-separated values, Cisco-style groups such as 0242.AC11.0002, and a plain sequence of twelve hexadecimal digits. Letter case does not matter. Successful results always use uppercase colon-separated notation, which makes values from different logs or configuration tools easier to compare. Validation is deliberately strict. Mixed separators, missing digits, extra octets, whitespace inside the address, and characters outside the hexadecimal range are rejected rather than guessed. The analyzer focuses on standard 48-bit MAC addresses and does not accept EUI-64 identifiers. Strict input handling matters in automation because silently repairing an ambiguous value can classify a different address from the one a user intended. If an input fails, correct its notation or length and submit it again; no network lookup or vendor database is involved.

Interpret classification without overclaiming

The result describes flags encoded in the address, not the current behavior, ownership, or trustworthiness of a device. A universally administered unicast address normally reflects an identifier assigned from a globally managed allocation, but the analyzer does not perform an OUI vendor lookup and cannot prove which hardware is using it. A locally administered address can be intentionally configured by an administrator, generated by a virtual machine or container platform, or produced by privacy features that randomize client addresses. Likewise, a multicast classification follows directly from the I/G bit; it does not show whether multicast traffic is present on a network. The all-ones broadcast address also has the group bit set and will therefore be reported as multicast at the bit-classification level. Use the normalized value and explicit flags as evidence when reviewing packet captures, DHCP records, switch tables, access-control lists, or generated configurations. API calls cost $0.002, while the deterministic calculation requires no external service.

Review randomized client addresses

Check whether an address observed in Wi-Fi or DHCP records carries the locally administered bit used by many privacy and virtualization features.

Inspect multicast configuration

Confirm the individual/group bit before placing an address in a multicast filter, packet-capture rule, or network test fixture.

Teach MAC address structure

Show the first octet in binary alongside both decoded flags so learners can connect bit positions to the resulting classifications.

Which part of the MAC address determines its type?

The two least significant bits of the first octet. Bit zero selects individual/unicast or group/multicast, and bit one selects universal or local administration.

Does a locally administered address mean it is invalid?

No. Local addresses are valid and are commonly used for virtualization, containers, deliberate overrides, and client privacy randomization.

Does this analyzer identify the hardware vendor?

No. It decodes address flags only and does not query an OUI registry or any external database.

Which input formats are accepted?

Colon-separated, hyphen-separated, Cisco dotted, and plain twelve-digit hexadecimal forms are accepted for 48-bit addresses.

How much does an API request cost?

Each API request costs $0.002. The calculation is deterministic and does not contact external services.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/dev/mac-type

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/dev/mac-type \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mac_address":"02:42:AC:11:00:02"}'
{
  "mac_address": "02:42:AC:11:00:02"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.mac_type",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →