[docs]
def mac_offset(mac_address: str, offset: int) -> str:
mac_int = int(mac_address.replace(':', ''), 16)
new_mac_int = mac_int + offset
new_mac_address = f'{new_mac_int:012x}'
return ':'.join(new_mac_address[i : i + 2] for i in range(0, len(new_mac_address), 2))
[docs]
def normalize_mac(mac: str) -> str:
"""
Normalize a MAC address.
Input: any common MAC format
Output: XX:XX:XX:XX:XX:XX (uppercase)
"""
# Remove all separators
mac_clean = mac.replace(':', '').replace('-', '').replace('.', '').upper()
if len(mac_clean) != 12:
raise ValueError(f'Invalid MAC address: {mac}')
return ':'.join([mac_clean[i : i + 2] for i in range(0, 12, 2)])