Skip to main content

Module macaddress

Module macaddress 

Source
Available on crate feature net only.
Expand description

MAC address type for network programming.

This module provides a type-safe abstraction for MAC addresses, ensuring compliance with IEEE 802 MAC address specifications.

§IEEE 802 MAC Address Rules

According to IEEE 802:

  • Length: 6 bytes (48 bits) for standard MAC addresses
  • Format: XX:XX:XX:XX:XX:XX (colon-separated hex pairs)
  • Alternative formats: XX-XX-XX-XX-XX-XX (dash-separated)
  • Each octet: 00-FF (0-255 in decimal)
  • First octet’s least significant bit indicates unicast (0) or multicast (1)
  • First octet’s second least significant bit indicates globally (0) or locally (1) administered

§Examples

use bare_types::net::MacAddress;

// Create a MAC address
let mac = MacAddress::new([0x00, 0x11, 0x22, 0x33, 0x44, 0x55])?;

// Check if it's unicast
assert!(mac.is_unicast());

// Check if it's globally administered
assert!(mac.is_globally_administered());

// Get the string representation
assert_eq!(mac.as_str(), "00:11:22:33:44:55");

// Parse from string
let mac: MacAddress = "00:11:22:33:44:55".parse()?;

Structs§

MacAddress
A MAC address.

Enums§

MacAddressError
Error type for MAC address validation.