ether_aton_r - Linux


The ether_aton_r command converts a presentation format MAC address (e.g., "01:23:45:67:89:ab") into a 48-bit integer where every 8 bits corresponds to one byte in the MAC. It is primarily useful for working with MAC addresses in memory or for creating data structures that require binary representation.


ether_aton_r <MAC address> <result variable>


  • <MAC address>: Presentation format MAC address (e.g., "01:23:45:67:89:ab").
  • <result variable>: Variable to store the converted 48-bit integer.




Simple Conversion:

ether_aton_r "01:23:45:67:89:ab" mac_int

Storing in Array:

ether_aton_r "01:23:45:67:89:ab" mac_array[0]

Complex Integration:

# Create a script to filter packets by MAC address

# Process arguments
if [ $# != 2 ]; then
  echo "Usage: $0 <MAC address> <interface>"
  exit 1

# Convert MAC address
ether_aton_r $1 mac_int

# Construct filter syntax
filter="ether host $mac_int"

# Apply filter to interface
tcpdump -i $2 -n -e "ether host $mac_int"

Common Issues

Invalid MAC Address:

If the provided MAC address is not in a valid format, ether_aton_r will return an error. Ensure the address follows the "01:23:45:67:89:ab" pattern.

Variable Type:

The result variable must be a signed integer with a length of 48 bits or more. Using an insufficiently sized variable can lead to data loss.


  • Combine with ether_ntoa_r to convert binary MAC addresses back to presentation format.
  • Use with tcpdump or tshark to filter packets based on MAC addresses.
  • Integrate into scripts for automating network analysis or management tasks.

Related Commands

  • ether_aton
  • ether_ntoa