如何使用 Python 和 boto3 列出 AWS EC2 实例的 MAC 地址

How to list MAC Address of an AWS EC2 instance with Python and boto3

如何使用 Python boto3 库查找有关 MAC Amazon EC2 实例地址的信息。

假设您有一个网络接口连接到您的实例。如果您的实例连接了多个网络接口,请根据您的需要调整代码。

import boto3

ec2 = boto3.resource('ec2')
insts = list(ec2.instances.all())
for inst in insts:
  for iface in inst.network_interfaces:
    print inst.instance_id, iface.mac_address

如果您在实例本身上,可以通过 instance metadata service:

检索 MAC 地址
$ curl http://169.254.169.254/latest/meta-data/mac/ 

02:72:f3:75:2f:83
    ips = []
    macs = []
    print self.nodes
    vpc = self.resource.Vpc(self.config['vpc_id'])

    for node in self.nodes:

        node_name = node.name
        if re.search(re.escape(instance_name) + r"-*[0-9]*", node_name) and node.state == 'running':
            ips.append(node.private_ips)

            for n in node.network_interfaces:
                if n.private_ip_address == node.private_ip_address:
                    macs.append(n.mac_address)
                    break
    return ips, macs