【问题标题】:Get only Mac address from IP (bash)仅从 IP 获取 Mac 地址(bash)
【发布时间】:2017-08-02 07:44:27
【问题描述】:

我想greparp -n中的MAC地址。

我试过这个:$ arp | grep 192.168.15.1 | awk '{print $3}'

但我最终是这样的:

00:00:00:00:00:00
00:00:00:00:00:00
00:00:00:00:00:00
00:00:00:00:00:00
00:00:00:00:00:00
00:00:00:00:00:00

我审查了 mac

我只想要一个 MAC 地址,我怎样才能得到它?

【问题讨论】:

  • 在您的原始解决方案中,如果您使用grep -m1,那么您将获得所需的结果,尽管同时使用grepawk 是多余的,因为awk“几乎”能够做任何事情grep 可以做到。

标签: bash awk grep arp


【解决方案1】:
arp | awk '/192.168.15.1/{print $3;exit}'

通过使用这个命令,你只会得到 1 个 mac。

如果你想采用bash脚本的输入作为addr,使用下面的命令,

arp -n $1 | awk -v a=$1 '$0 ~ a{print $3;exit}'

使用-v a=$1将bash的$1赋值给awk中的变量a

【讨论】:

  • arp -n 192.168.15.1 | awk '/192.168.15.1/{print $3;exit}' 这对我有用 :) 我会写一个这样的 Bash 脚本:` arp -n $1 | awk '/'$1'/{print $3;exit}'`
  • arp 已被弃用,使用它会导致您的脚本有时会失败,除非您不升级您的系统,从而使它们极易受到攻击
  • @MrFlyingToasterman,如果你想在 bash 中使用,请查看我修改后的答案
【解决方案2】:
ip -brief link show |grep -v LOOPBACK|awk '{print $3;}'

【讨论】:

  • 我需要一个不是我自己的远程 MAC。
  • 只需将链接更改为邻居
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2013-02-27
  • 2017-10-05
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
相关资源
最近更新 更多