在本地网络上查找Raspberry PI地址


76

我需要在本地网络上找到Raspberry PI IP地址,而无需将Raspberry连接到监视器。在Linux或Mac OS系统上该如何做?



智能手机上的Lan扫描应用程序将显示您网络上的所有设备。

Answers:


90

所有树莓派设备的MAC地址均以B8:27:EB开头。

因此,在* nix系统上,这可以通过执行以下命令来完成:

sudo nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'

192.168.1.*您的本地网络掩码在哪里。您将得到类似的答案:

Nmap scan report for raspberrypi.localnetwork.lan (192.168.1.179)

192.168.1.179是您网络上的Raspberry Pi IP地址。

如果您使用的是Mac系统,则可以使用Homebrew安装nmap

brew install nmap

Windows上,您可以使用Wireshark并使用以下显示过滤器:

eth.addr[0:3] == B8:27:EB

2
或使用更少的管道:nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
ripat

2
谢谢@ripat,这更加简洁了-更新了!一个小细节,您需要以管理员身份运行,否则nmap将不会显示MAC地址。
J. Costa

3
除非您尝试将raspberrypi毫无头绪地放置在使用DHCP分配IP的办公环境中,否则您将不会理解此答案的重要性。为此@ripat喝彩
Voke Ransom Anighoro 2014年

1
因为nmap不会为我吐出主机名,所以该答案对我不起作用。但是,这确实激励了我使用nmap搜索开放的ssh端口,这确实使我能够找到pi:sudo nmap -p 22 --open -sV 192.168.0.0/24 每个人的帖子
罗斯·罗杰斯

“ sudo nmap -sP 192.168.1.0/24”不够(它让我感到担心)吗?
玛丽安(MarianPaździoch)2015年

48

如果您运行的是MacOS或Linux,请尝试以下一种方法:

$ arp -na | grep -i b8:27:eb

在Windows上,您可以使用:

arp -a | findstr b8-27-eb

3
此解决方案比nmap解决方案快得多!
ryanm 2015年

此解决方案对我有用,不像nmap解决方案(仅列出部分内容)。
威尔伯特

7
这只会显示已进入arp表的主机,因此有时会错过安静的主机。第一次进行一次nmap扫描可能会有所帮助。
约瑟夫·希迪

可能,但是对我而言,这从未失败。另外,这是一个简单的第一次尝试。
amenthes

谢谢你 我稍加修改并立即使用arp -n | awk '/b8:27:eb/ {print $1}'
0x01

8

我使用mDNS / Bonjour为我的Pi赋予一个本地名称,例如pi.local。我不需要知道它的IP地址,这对于快捷方式以及何时需要嵌入链接都适用...

如何以及为什么为您的Pi分配本地名称


太棒了!我曾经在/etc/hosts本地玩弄以在桌面上获得此功能,这是一个更好的解决方案!非常感谢您的指导!
0x01

7

如果要为其使用GUI应用程序,则可以使用Debian / Ubuntu的Yakala工具(https://github.com/mozcelikors/yakala)。该工具不仅可以帮助您搜索可用的B型和C型网络,还可以帮助您直接SSH进入网络:

sudo add-apt-repository ppa:mozcelikors/yakala
sudo apt-get update
sudo apt-get install yakala

要么

git clone https://github.com/mozcelikors/yakala
cd yakala && sudo ./install.sh

https://raw.githubusercontent.com/mozcelikors/yakala/master/docs/img/peekx2.gif

免责声明:我是Yakala的创建者。任何建议/错误都非常重视。


1
在很久以前,1993年就放弃了有类网络。
Lightness Races in Orbit

什么是全班级联网?
丹尼斯

6

默认情况下,树莓派的名称是raspberrypi。您只需“ ping raspberrypi”,ICMP回显答复就会为您提供IP地址。它为我工作。确保DHCP服务器可访问,因为树莓派的NIC默认在DHCP客户端模式下。否则,覆盆子将获得APIPA地址。


4

在linux和MAC中,您还可以在终端中键入“ arp-a”,然后获取已连接设备的列表,查找其中带有B8的设备,例如:192.168.4.5 @ B8 ...将是树莓派IP。


3

或者,您可以通过浏览器访问路由器并找到您的android设备-几乎每个路由器GUI都有一项服务,您可以在其中检查当前连接到网络的所有设备。


3

如果您运行MacOS,请使用PiFinder,它是一个可以告诉您网络上Raspberry Pi的IP的应用程序。


3

我在Android智能手机中使用免费的Fing应用。它扫描网络并按类型显示连接的设备,包括Raspberry Pi,以及扫描可用端口。方便查看SSH,Web或VNC是否已启用并正在运行。


2

将以下内容复制到您的终端机/控制台/外壳中:

for i in $(jot - 1 254); do ping -t 1 192.168.1.$i && arp -a | cut -f 2,4 -d " " | tr [:lower:] [:upper:] | grep B8:27:EB; done

请改用192.168.1。到您的个人网络。

输出将如下所示:

(192.168.1.109)B8:27:EE:DD:CC:A

192.168.1.109将是您的Raspberry Pi的IP…:)


2

将其放在Web服务器上的pi.php中:

<?php
$fp = fopen('pi', 'w');
fwrite($fp, $_REQUEST['ip'],1000);
fclose($fp);
?>

您可能必须在具有对Web服务器的写许可权的Web服务器上创建文件pi。

curl http://yourwebserver/pi.php -d ip=`hostname -I`

在您的pi上的/etc/rc.local中。

通过浏览http:// yourwebserver / pi获取您的pi的IP


2

当使用全新安装的NOOBS或Raspbian时,默认主机名是“ raspberrypi”,在某些网络配置(即,如果正在使用和配置mDNS)中,可以使用“ raspberrypi.local”。另一个选择是运行arp -a并寻找raspberrypi

注意:这不适用于每个实例。


这个答案似乎混淆了几件事:不同的IP版本,DNS,也许还有mDNS。是否.local可以使用通常不取决于IPv6,也不取决于是否存在路由器。如果提供了mDNS支持,则pi-name.local可以解析为IPv6,否。一些家用路由器还使用.local作为其本地DNS域,这又与IPv6无关,并取决于路由器型号。某些家用路由器使用不同的域,例如pi-name.fritz.box。
TheDiveO

2

我的路由器为新发现的系统分配了一个以192.168.1.2开头的ip地址。我有一天浏览了家里的每个系统,并为它们保留了地址。

这样,当我创建一个新系统时,其ip地址很可能是192.169.1.18。

使用串行控制台的另一种方法。您可以使用串行终端程序来登录树莓派。我建议使用速度(波特率)为115,200的8N1(8位,无奇偶校验位,1个停止位)设置。您需要一个USB到串行(3V3)连接器。


1

我假设您无法连接到PI,否则您将知道其IP。

如果转到路由器页面(在浏览器中通常为192.168.1.1之类的页面),则应该有一个包含已连接设备的区域。您可以尝试插入和拔下PI(并且一台设备应该出现在列表中/从列表中消失)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.