【问题标题】:Get IP address of other RPi connected directly with LAN获取与局域网直接连接的其他 RPi 的 IP 地址
【发布时间】:2021-07-08 08:35:16
【问题描述】:

我有两个 RPi 直接通过 LAN 电缆连接在一起,我想知道如何使用 Python 从另一个 RPi 获取 IP 地址 (eth0)?

我知道如何获取 RPi 本身的 IP 地址。但是对于另外一个,我就不知道了,我通过扫描全网找到了解决办法。但我想应该有一个更简单的方法,因为我直接连接了 2 个设备。

提前致谢!

【问题讨论】:

    标签: python raspberry-pi ip-address lan


    【解决方案1】:

    你可以使用:

    ip neighbour
    

    列出已连接的 ips。

    【讨论】:

    • 我无法使用命令查看其他 RPi 的 IP 地址 :(
    • 嗯...它显示了什么?它应该提取 ARP 缓存条目,并从那里获取邻居信息。您也可以尝试使用 net-tools 中的 arp 命令来做同样的事情。如果两个节点可以通过以太网通过 IP 进行通信,那么应该有一个有效的 ARP 条目。
    • 我重新启动了 RPi,现在它可以工作了,我在列表中看到了 IP。我现在必须找到一种在 Python 中提取的方法 :)
    • ARP 超时,几分钟后消失。
    【解决方案2】:

    您可以扫描整个 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!

    【讨论】:

      猜你喜欢
      • 2012-01-10
      • 1970-01-01
      • 2016-10-27
      • 2012-11-27
      • 2015-11-09
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      相关资源
      最近更新 更多