public static PhysicalAddressType GetAddressType(this PhysicalAddress address)
{
if (address == null)
throw new ArgumentNullException(nameof(address));
var bytes = address.GetAddressBytes();
if (bytes == null || bytes.Length < 1)
throw new ArgumentException($"Invalid {nameof(address)}.");
return (bytes[0] & 0x1) == 0 ? PhysicalAddressType.Unicast : PhysicalAddressType.Multicast;
}