查找Raspberry 体育彩票31选7的MAC地址

12

有时候获取Raspberry 体育彩票31选7的MAC地址可能很有用’的网络接口。的“Media Access Control”地址是分配给所有联网设备的唯一标识符。所有体育彩票31选7的地址都不同’,并且可用于识别您的设备。可以将其视为数字指纹。以太网和WiFi接口有单独的MAC地址。

有多种方法可以使用命令行或Python代码来识别它们。以下是一些可用于查找MAC地址的快速示例。

从命令行

要从命令行查找MAC地址,您需要知道接口的名称。以太网接口曾经被称为“eth0”但在较新版本的Raspbian中,可能是“enx########”其中########是MAC地址。这意味着每个体育彩票31选7的以太网接口名称都是唯一的。第一个WiFi接口仍然命名“wlan0”.

您可以使用以下命令找到接口名称:

ls /sys/class/net/

的name will be 上e of the 显示ed sub-directories alongside “lo”.

然后,您可以使用以下命令:

cat /sys/class/net/####/address

或者您可以输入:

ifconfig ####

您应该将####交换为接口名称。

这将导致输出类似于:

eth0 Link encap:Ethernet  硬件 c7:35:ce:fd:8e:a1
     inet addr:192.168.0.16  Bcast:192.168.0.255  Mask:255.255.255.0
     inet6 addr: fe80::ba27:ebff:fefc:9fd2/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

要么

恩克斯 c735cefd8ea1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  inet 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
  inet6 fe80::5280:6726:a47d:f38c prefixlen 64 scopeid 0x20<link>
  醚 c7:35:ce:fd:8e:a1 txqueuelen 1000 (Ethernet)

的“HWaddr” 要么 “ether”值是MAC地址。在这个例子中“c7:35:ce:fd:8e:a1”

使用Python查找以太网接口名称

当前版本的Raspbian中用于以太网和无线接口的名称为“eth0” and “wlan0”.

在Raspbian的一些旧版本中,这些名称是基于接口的MAC地址的,即所谓的“可预测的接口名称”。因此,无论使用哪种方案,我都创建了一个函数来确定名称:

def getEthName():
  # Get name of the Ethernet 接口
  try:
    for root,dirs,files in os.walk('/sys/class/net'):
      for dir in dirs:
        if dir[:3]=='enx' 要么 dir[:3]=='eth':
          接口=dir
  except:
    接口="None"
  return 接口

它查看/ sys / class / net /的子目录,并找到“eth0”或名称开头“enx”.

在脚本中,您可以使用此函数将接口名称读入变量:

ethName=getEthName()

使用Python查找MAC地址

以下Python函数可用于获取Raspberry 体育彩票31选7的MAC地址:

def getMAC(interface='eth0'):
  # Return the MAC address of the specified 接口
  try:
    力量 = open('/sys/class/net/%s/address' %interface).read()
  except:
    力量 = "00:00:00:00:00:00"
  return 力量[0:17]

可以使用以下行调用此函数:

getMAC('eth0')

或者,如果您有WiFi连接:

getMAC('wlan0')

最终,将这两个功能结合在一起将使您能够查找以太网接口名称,然后检索地址,而不必担心使用的是Raspbian版本:

ethName=getEthName()
ethMAC=getMAC(ethName)
分享。

12条留言

    • ifconfig和friends是/ sys文件系统的包装。

      Isn’关于将read()和write()写入文件,而不是生成另一个程序并解析输出,有没有很好而又简单的方法?

  1. 对Python代码的一些次要修复和改进:

    1. 的open command should not have a comma in the arguments.
    2. readline()可以只是read(),因为永远不会超过一行。
    3. Instead of returning 力量[0:17] just return 力量.strip() and it will remove the trailing newline.
    4.(仅用于样式)尝试避免“str” as the name of a variable, as it masks the 力量 type which is a builtin function. Obviously not important in a tiny function like this but it’最好不要掩盖内置名称… some day you’避免浪费大量时间对由于此类操作而导致的难以理解的错误进行故障排除。

    • 感谢您的提示。一世’我将尽快整理此功能,以便我接受您的所有建议。“str”是变量的愚蠢名称,而我’我什至不知道我怎么做’当时没有注意到!

  2. 这次真是万分感谢!我安装了体育彩票31选7dora和ifconfig wasn’t there! Thank you for posting both. I have been working with 的Linux for years and thanks to ifconfig I had no idea about the underlying file 力量ucture.

  3. 替代方法:通过以太网电缆将Rpi插入路由器,打开电源,等待一分钟,然后检查路由器的状态页’s已连接设备的列表:如果可以看到体育彩票31选7,则MAC地址可能会在此处列出(与“EE Brightbox” router anyway)

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.