DladmIface

class getmac.getmac.DladmIface[source]

Bases: Method

Use the dladm command to get the MAC address of a network interface on Solaris 11 and illumos (e.g. OmniOS, OpenIndiana, SmartOS). Unlike ifconfig, which only shows the MAC to root, this works for any user.

The type of datalink is from dladm show-link, and the MAC is from dladm show-phys -m for physical links (NICs), dladm show-vnic for virtual NICs (VNICs, which zones usually have), and dladm show-aggr -x for link aggregations. A VLAN has the MAC of the link it’s on.

Other types of datalinks (e.g. etherstubs and IP tunnels) don’t have a MAC, and neither do IPMP groups (e.g. ipmp0), which aren’t datalinks, so they’re None. ifconfig doesn’t show a MAC for any of them either.

Solaris 10’s dladm doesn’t have -o, so this is marked unusable there.

Documentation: Oracle Solaris, illumos

Attributes Summary

method_type

The type of method, e.g. does it get the MAC of a interface.

platforms

Platforms supported by a method.

Methods Summary

get(arg)

Core logic of the method that performs the lookup.

test()

Low-impact test that the method is feasible, e.g. a command exists.

Attributes Documentation

method_type: str = 'iface'

The type of method, e.g. does it get the MAC of a interface.

Allowed values:

  • ip

  • ip4

  • ip6

  • iface

  • default_iface

platforms: set[str] = {'sunos'}

Platforms supported by a method.

Methods Documentation

get(arg)[source]

Core logic of the method that performs the lookup.

Warning

If the method itself fails to function an exception will be raised! (for instance, if some command arguments are invalid, or there’s an internal error with the command, or a bug in the code).

Parameters:

arg (str) – What the method should get, such as an IP address or interface name. In the case of default_iface methods, this is not used and defaults to an empty string.

Return type:

Optional[str]

Returns:

The raw value the technique found, or None if nothing was found. It isn’t cleaned up, so it may not be a lowercase colon-separated MAC (get_mac_address() runs it through clean_mac()). For default_iface methods, it’s the name of an interface instead of a MAC.

test()[source]

Low-impact test that the method is feasible, e.g. a command exists.

Return type:

bool