【发布时间】:2021-07-08 08:35:16
【问题描述】:
我有两个 RPi 直接通过 LAN 电缆连接在一起,我想知道如何使用 Python 从另一个 RPi 获取 IP 地址 (eth0)?
我知道如何获取 RPi 本身的 IP 地址。但是对于另外一个,我就不知道了,我通过扫描全网找到了解决办法。但我想应该有一个更简单的方法,因为我直接连接了 2 个设备。
提前致谢!
【问题讨论】:
标签: python raspberry-pi ip-address lan
我有两个 RPi 直接通过 LAN 电缆连接在一起,我想知道如何使用 Python 从另一个 RPi 获取 IP 地址 (eth0)?
我知道如何获取 RPi 本身的 IP 地址。但是对于另外一个,我就不知道了,我通过扫描全网找到了解决办法。但我想应该有一个更简单的方法,因为我直接连接了 2 个设备。
提前致谢!
【问题讨论】:
标签: python raspberry-pi ip-address lan
你可以使用:
ip neighbour
列出已连接的 ips。
【讨论】:
您可以扫描整个 LAN 并使用“Raspberry Pi Foundation”拥有的 MAC 地址进行过滤。
例子:
$ sudo nmap -p 22 192.168.1.0/24 --open
Starting Nmap 7.60 ( https://nmap.org ) at 2021-04-16 10:55 CEST
Nmap scan report for _gateway (192.168.1.1)
Host is up (0.00048s latency).
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 0A:E5:4C:69:45:1E (Unknown)
Nmap scan report for 192.168.1.5
Host is up (0.0013s latency).
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 64:00:F1:4D:32:D1 (Cisco Systems)
Nmap scan report for 192.168.1.12
Host is up (0.00037s latency).
PORT STATE SERVICE
22/tcp open ssh
MAC Address: B8:27:EB:F3:FD:7F (Raspberry Pi Foundation)
Nmap done: 256 IP addresses (9 hosts up) scanned in 8.56 seconds
如果在它们上打开了 ssh,您可以过滤此端口,如果没有,您可以使用“-sP”而不是“-p 22”的简单 ping。
如果 nmap 没有向您显示 mac-prefix 所有者,您还可以使用已知前缀对其进行过滤(B8:27:EB:、DC:A6:32:、E4:5F:01:)。
在我的示例中,我的 rPI 为 192.168.1.12!
【讨论】: