当前位置: 首页 > 面试题库 >

使用Shell脚本获取MAC地址

华知
2023-03-14
问题内容

当前,提到的用于获取MAC地址的所有解决方案始终使用eth0。但是,如果接口不是以eth0开头,该怎么办呢?同样在OS X上,接口名称也不同。
eth0接口也可能存在但未使用。即不活跃,它没有一个IP。

因此,有没有一种html" target="_blank">方法可以获取第一个可用接口Active的MAC地址(即,它具有一个inet地址,我什至不希望有人拥有inet6)。

例如

eth0      Link encap:Ethernet  HWaddr <some addr>
          inet6 addr: <some addr> Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:123
          RX packets:123 errors:123 dropped:123 overruns:123 frame:123
          TX packets:123 errors:123 dropped:123 overruns:123 carrier:123
          collisions:123 txqueuelen:123 
          RX bytes:123 (123 MB)  TX bytes:123 (123 KB)
          Interrupt:123 Memory:00000000-00000000

eth1      Link encap:Ethernet  HWaddr <some addr>
          inet addr:<some addr>  Bcast:<some addr>  Mask:<some addr>
          inet6 addr: <some addr> Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:123 Metric:123
          RX packets:123 errors:123 dropped:123 overruns:123 frame:123
          TX packets:123 errors:123 dropped:123 overruns:123 carrier:123
          collisions:123 txqueuelen:123 
          RX bytes:123 (123 MB)  TX bytes:123 (123 KB)
          Interrupt:123 Memory:00000000-00000000

注意:我更改了输出值。

因此,在这种情况下,我想要的是eth1而不是eth0的HWaddr。我如何找到它?它还应适用于所有Linux版本。


问题答案:

请注意,接口名称和MAC地址是一行中的第一个和最后一个字段,没有前导空格。

如果缩进的一行之一包含inet addr:最新的接口名称,则应打印MAC地址。

ifconfig -a |
awk '/^[a-z]/ { iface=$1; mac=$NF; next }
    /inet addr:/ { print iface, mac }'

请注意,多个接口可能符合您的条件。然后,脚本将打印多行。(; exit如果您始终只想打印第一个匹配项,则可以在最后一个大括号之前添加。)



 类似资料:
  • 本文向大家介绍Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP,包括了Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP的使用技巧和注意事项,需要的朋友参考一下

  • 问题内容: 我可以用 获取mac地址,但是如果我在离线计算机上使用此代码,它将无法正常工作。 那么,如何获得Mac地址? 问题答案: 在Java 6+中,你可以使用。 请记住,计算机不能有网卡,尤其是嵌入式或虚拟的网卡。它也可以有多个。你可以使用来获取所有网卡的列表。

  • 本文向大家介绍Shell脚本中获取本机ip地址的3个方法,包括了Shell脚本中获取本机ip地址的3个方法的使用技巧和注意事项,需要的朋友参考一下 方法一: 方法二: 方法三:

  • 问题内容: 我需要一种跨平台的方法来在运行时确定计算机的MAC地址。对于Windows,可以使用“ wmi”模块,在Linux下,我能找到的唯一方法是运行ifconfig并在其输出中运行正则表达式。我不喜欢使用只能在一个OS上运行的程序包,而且更不用说容易出错的语法解析另一个程序的输出。 有谁知道跨平台方法(Windows和Linux)方法来获取MAC地址?如果没有,还有谁比我上面列出的方法更优雅

  • 问题内容: 我正在尝试从文本文件中获取特定行。 到目前为止,在网上我只看到过sed之类的东西(我只能使用sh-不能使用bash或sed或类似的东西)。我只需要使用基本的shell脚本来执行此操作。 我知道如何遍历行,如上所示,但是如果我只需要获取特定行的内容怎么办? 问题答案: sed: awk:

  • 问题内容: 我正在寻找一种方法(使用python)从本地网络上的设备获取地址。 地址是已知的。 目标是建立一个脚本,该脚本将定期轮询IP地址数据库,以确保mac地址没有更改,如果有更改,则将电子邮件警报发送给我自己。 问题答案: 用Python回答问题取决于您的平台。我没有Windows,因此以下解决方案可在我写过的Linux机器上使用。对正则表达式进行小的更改将使其在OS X中运行。 首先,您必