从Mac地址获取IP地址

时间:2013-12-02 19:21:30

标签: networking raspberry-pi

是否可以通过本地网络从其MAC地址确定设备的IP地址?如果可能的话,我希望能够从命令行执行此操作。

我需要将我的覆盆子pi连接到我的学校无线网络并将ssh / vnc连接到它,但我不想带外围设备(鼠标,键盘,显示器)只是为了检查它被动态分配的IP地址。

5 个答案:

答案 0 :(得分:1)

您需要使用ARP协议。

首先获取局域网的布局地址(您可以使用以下方式找到它:

ifconfig

然后ping该地址以刷新系统的ARP表。 (所有邻居都会回答)

ping -b -c1 BROADCAST_IP_ADDRESS

现在您可以使用arp -a并查找IP地址:

arp -a

您可以使用

自动执行此操作
arp -a | grep MAC_ADRESS | cut -f2 | tr -d '()'

答案 1 :(得分:0)

您可以使用airodump-ng或wireshark等实用程序扫描mac地址并以此方式获取IP。

或者查看ARP -a

答案 2 :(得分:0)

我首先想到的是你使用RARP协议。这似乎已被弃用,可能无法在Raspberry的TCP / IP堆栈中启用。使用Raspi配置稍微调整一下,看看是否可以启用它。然后,从另一个Linux框中,您可以发出命令rarp -a

答案 3 :(得分:0)

这是一个老帖子,但我最近需要这个。

我试图ping本地网络上的所有设备,这表示65k +不同的IP地址。我以某种方式设法用启动命令批量启动parralel中的ping,但是有了这么多命令,它很快就会出现打开和关闭的命令提示,并且对我的笔记本电脑来说似乎已经够糟了。

然后,我尝试使用java及其isReachable()方法,该方法尝试ping。将它封装在一个固定的线程池上,在这里我又去了...... ping完了,arp -a给了我IP ...我再试一次,arp -a什么也没给... wtf

非常重要的事情,如果你想扫描你的网络,就是在每次ping之后检查你的arp表中你想要的IP。在Java中,我设法以30秒的速度扫描所有60k + ip地址,并且批处理无法做得更好......因为是的,我必须在windows中执行此操作

希望它能帮助某人......

答案 4 :(得分:0)

使用ifconfig命令

  ifconfig | grep "inet " | grep -v 127.0.0.1

只需使用ifconfig即可提供完整的details列表,以便过滤到正确的ip地址。使用grep inet缩小搜索范围。

此处-v表示“反转匹配感”。避免在搜索条件中包含关键字127.0.0.1的行。