Shell命令从其mac地址获取远程系统的ip地址?

时间:2017-05-20 13:21:49

标签: shell ubuntu

我有远程机器的HWAddress,但它的IP地址不是静态的并且不断变化。如何通过shell获取其IP地址?

相关问题主要是远程系统在同一网络中,但在我的情况下不是。

编辑:我知道它的IP范围。

3 个答案:

答案 0 :(得分:0)

我不认为您可以从其他网络上的计算机的mac地址获取IP。特定接口的mac地址仅用于链路层,您无法访问本地网络上不存在的两个节点之间的链路层帧。

如果您只需要使用不同的ip访问特定的计算机,那么您可以使用动态DNS服务完成这项工作。您选择其中一个服务域的子域,并且它们会跟踪IP地址的更改,以便您选择的子域始终指向与您提供的初始IP地址相同的设备。 noip.com is one such provider.

答案 1 :(得分:0)

您可以使用arp命令,尽管这可能很慢。要仅提取IP,请尝试以下操作;

arp -n | grep -i"这里的MAC地址" | cut -d" " -f1

答案 2 :(得分:0)

请按照以下步骤操作:

  1. 显示活动的网络接口名称:
 DoCmd.OpenForm "frmStudentsAll", acNormal
  1. 获取用于连接的网络接口。如果它是上面列表中的第一个,请使用以下命令:
LIST_NET_IFACE=$(ip addr show | awk '/inet.*brd/{print $NF}')
echo "${LIST_NET_IFACE}"
  1. 如有必要,获取带有其网络掩码的网络IP:
NET_IFACE=$(ip addr show | awk '/inet.*brd/{print $NF; exit}')
echo "${NET_IFACE}"
  1. 如有必要,请分开IP:
NET_MASK=$(ip -o -4 addr list "${NET_IFACE}" | awk '{print $4}')
echo "${NET_MASK}"
  1. 最后,在此网络中发现并列出硬件的mac地址:
NET_IP=$(echo ${NET_MASK} | cut -d/ -f1)
echo "${NET_IP}"
  1. 要从存储在var REMOTE_MACADDRESS(内容为小写)的特定硬件mac地址中获取IP:
arp -n -i "${NET_IFACE}" | grep -v "incomplete"