MAC Address
technology.internet.mac_addressMedia Access Control (MAC) address in standard colon-separated hex format (e.g., 00:1a:2b:3c:4d:5e). Also accepts hyphen-separated format.
Shape
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$| Value | Length | Shape |
|---|---|---|
| 00:1a:2b:3c:4d:5e | 17 | matches |
| 08-00-27-00-00-00 | 17 | matches |
| a0:b1:c2:d3:e4:f5 | 17 | matches |
| 00:1a:2b:3c:4d:5 | 16 | rejected: one character short |
Background
Origin
The IEEE 802 MAC address originally comes from the Xerox Network Systems Ethernet addressing scheme.[1] The IEEE manages the allocation of MAC addresses, which were originally known as MAC-48 and are now called EUI-48 identifiers.[1] The IEEE Registration Authority describes an EUI-48 as a string of six octets.[2] According to the IEEE Registration Authority, an EUI-48 is commonly used as the address of a hardware interface according to IEEE Std 802.[2] A MAC address typically includes a manufacturer's organizationally unique identifier (OUI).[1] The IEEE Registration Authority's guidelines describe the OUI as a 24-bit (three octet) sequence.[2]
Use
PostgreSQL's macaddr type accepts input separated by colons, hyphens or dots, as well as twelve hexadecimal digits with no separator.[3] PostgreSQL's documentation says upper and lower case are accepted for the digits a through f.[3] PostgreSQL always outputs a macaddr value in the colon-separated form, as in 08:00:2b:01:02:03.[3] Python's uuid.getnode() returns the hardware address as a 48-bit positive integer rather than as text.[4] Before joining or deduplicating MAC addresses from different systems, normalise them to one case and one separator, because the same address can arrive in several spellings. (Meridian's view)
The IEEE Registration Authority's guidelines say the second least significant bit of the first octet (the U/L bit) indicates universal (0) or local (1) administration of the address.[2] The IEEE Registration Authority's guidelines say the least significant bit of the first octet (the I/G bit) indicates an individual (0) or group (1) address.[2] A locally administered address is assigned to a device by software or a network administrator.[1] Randomised MAC addresses can be identified by the locally administered bit.[1] Randomisation of MAC addresses during network scanning was added to Android starting with version 6.0, to Windows 10 and to Linux 3.18.[1] Do not treat a Wi-Fi MAC address in a recent log as a stable device identifier: check the locally administered bit first, and expect one device to appear under several addresses. (Meridian's view) Python's documentation warns that uuid1() may compromise privacy since it creates a UUID containing the computer's network address.[4] A MAC address tied to a person's phone or laptop can single that person out, so handle columns of them with the same care as other personal identifiers. (Meridian's view)
Sources
- [1]MAC addresssecondary source
- [2]Guidelines for Use of Extended Unique Identifier (EUI), Organizationally Unique Identifier (OUI), and Company ID (CID)organisation
- [3]PostgreSQL: Documentation: 18: 8.9. Network Address Typesdocumentation
- [4]uuid — UUID objects according to RFC 9562 — Python 3.15.0 documentationdocumentation
Detection notes
v1 migration: Was internet.mac_address. Pattern accepts both colon and hyphen separators. Data typically uppercase, but pattern is case-insensitive.
Use it
$ finetype infer -i "00:1a:2b:3c:4d:5e" --mode column
→ technology.internet.mac_address
SELECT ft_infer('00:1a:2b:3c:4d:5e');
-- → 'technology.internet.mac_address'CAST({col} AS VARCHAR)Schema
https://meridian.online/schemas/technology.internet.mac_address · Frictionless type string
finetype taxonomy technology.internet.mac_address -o json-schema