Ho bisogno di trovare lindirizzo IP Raspberry PI sulla rete locale senza connettere il Raspberry a un monitor. Come posso farlo su sistemi Linux o Mac OS?

Commenti

Risposta

Tutti gli indirizzi MAC dei dispositivi raspberry iniziano con B8: 27: EB (per RPi4 B iniziano con dc:a6:32, sostituire dove appropriato).

Quindi, sui sistemi * nix , questo può essere ottenuto eseguendo il seguente comando:

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

dove 192.168.1.* sarà la maschera di rete locale. Riceverai una risposta del tipo:

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

192.168.1.179 è lindirizzo IP del Raspberry Pi sulla tua rete.

Se lo sei su un sistema Mac puoi utilizzare Homebrew per linstallazione nmap :

brew install nmap 

Su Windows , potresti utilizzare Wireshark e il seguente filtro di visualizzazione:

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

Commenti

  • O con meno pipe: nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
  • Grazie @ripat, è molto di più conciso – aggiornato! Un piccolo dettaglio, devi eseguire come amministratore o nmap non mostrerà lindirizzo MAC.
  • Non apprezzerai limportanza di questa risposta finché non avrai provato a localizzare senza testa il tuo raspberrypi in un ufficio dove Gli ‘ IP vengono forniti tramite DHCP. Ciao per questo @ripat
  • Questa risposta ‘ non ha funzionato per me poiché nmap non ‘ sputava il hostname per me. Tuttavia, mi ha ispirato a cercare porte ssh aperte con nmap e questo mi ha permesso di trovare il pi: sudo nmap -p 22 --open -sV 192.168.0.0/24 per questo guy ‘ s post .
  • non è ‘ t ” sudo nmap -sP 192.168.1.0/24″ abbastanza (mi è piaciuto)?

Risposta

Se “stai utilizzando MacOS o Linux, prova questo:

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

Su Windows puoi usa:

arp -a | findstr b8-27-eb 

Su RPi 4B, devi usare una stringa diversa per il confronto (dc:a6:32:be:95). Puoi controllalo sul tuo RPi

ip -br link 

Ci saranno voci per ogni scheda di rete. eth0 è Internet via cavo, wlan0 è il WiFi.

Commenti

  • Questa soluzione è molto più veloce di una soluzione nmap!
  • Questa soluzione ha funzionato per me, a differenza di th e nmap soluzione che ha fornito solo una parte della lista.
  • Questo mostrerà solo gli host che sono entrati nelle tue tabelle arp, quindi a volte mancano quelle silenziose. Potrebbe essere utile eseguire prima una scansione di nmap.
  • Potrebbe, ma per me questo non è mai fallito. Inoltre, ‘ è un facile primo tentativo.
  • Grazie per questo. Lho modificato leggermente e uso arp -n | awk '/b8:27:eb/ {print $1}' adesso.

Risposta

Uso mDNS / Bonjour per dare al mio Pi un nome locale come pi.local. Non ho bisogno di sapere il suo indirizzo IP e funziona per le scorciatoie e quando è necessario incorporare un collegamento …

Come e perché assegnare un nome locale al tuo Pi

Commenti

  • Fantastico! Giocavo con /etc/hosts localmente per ottenere questa funzionalità sul mio desktop, questa è una soluzione MOLTO migliore! Grazie mille per il puntatore!

Risposta

Se desideri utilizzare unapplicazione GUI, puoi utilizzare lo Yakala strumento ( https://github.com/mozcelikors/yakala ) per Debian / Ubuntu. Questo strumento ti aiuta non solo a cercare le reti di tipo B e di tipo C disponibili, ma ti aiuta anche a accedere direttamente a SSH nella rete:

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

o

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

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

Dichiarazione di non responsabilità: Sono il creatore di Yakala. Qualsiasi suggerimento / bug viene preso molto sul serio.

Commenti

  • Il networking di classe è stato abbandonato nel 1993, che è molto tempo fa.
  • Cosè classfull networking?

Answer

Per impostazione predefinita, il nome del raspberry è raspberrypi.Puoi semplicemente eseguire il “ping raspberrypi” e la risposta echo ICMP ti fornisce lindirizzo IP. Ha funzionato per me. Assicurati che il server DHCP sia raggiungibile poiché la scheda NIC del raspberry è per impostazione predefinita in modalità client DHCP. Altrimenti il raspberry ottiene un indirizzo APIPA.

Risposta

In linux e MAC, puoi anche digitare “arp – a” nel terminale e puoi ottenere un elenco di dispositivi collegati, cerca quello con B8 al suo interno, esempio: 192.168.4.5 @ B8 … sarà lIP raspberry pi.

Risposta

Uso il Fing nel mio smartphone Android. Esegue la scansione della rete e mostra i dispositivi collegati per tipo, incluso Raspberry Pi, nonché la scansione delle porte disponibili. Comodo per vedere se SSH, web o VNC sono abilitati e in esecuzione.

Risposta

Oppure puoi accedere al tuo router tramite browser e trovare il tuo dispositivo Android -quasi ogni GUI del router ha una servizio in cui puoi controllare tutti i dispositivi attualmente connessi alla tua rete.

Rispondi

Se esegui MacOS, usa PiFinder , è unapplicazione che ti dirà lIP di un Raspberry Pi sulla tua rete.

Risposta

Copia quanto segue nel tuo terminale / console / shell:

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 

Adatta 192.168.1. alla tua rete individuale.

loutput sarà simile a questo:

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

192.168.1.109 sarebbe lIP del tuo Raspberry Pi … 🙂

Risposta

Mettilo in pi.php sul tuo server web:

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

Potrebbe essere necessario creare il file pi sul tuo server web con i permessi di scrittura per il tuo web server.

Metti

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

in /etc/rc.local sul tuo pi.

Ottieni lIP del tuo pi sfogliando http://yourwebserver/pi

Risposta

Quando si utilizza una nuova installazione di NOOBS o Raspbian, il nome host predefinito è “raspberrypi” e in alcune reti configurazioni ork (ad es. se mDNS è in uso e configurato) è possibile utilizzare “raspberrypi.local”. Unaltra opzione è eseguire arp -a e cercare raspberrypi

NOTA: non funzionerà per ogni istanza.

Commenti

  • Questa risposta sembra mescolare diverse cose: diverse versioni IP, DNS e forse mDNS. Se .local può essere utilizzato di solito non ‘ t dipendono da IPv6 e anche non dalla presenza di un router. Quando è disponibile il supporto mDNS, pi-name.local si risolve, IPv6 o meno. Alcuni router domestici usano anche .local come il loro dominio DNS locale, di nuovo questo è indipendente da IPv6 e dipende dal modello di router. Alcuni router domestici utilizzano domini diversi, come pi-name.fritz.box.

Risposta

Il mio router assegna ai sistemi appena scoperti un indirizzo IP che inizia a 192.168.1.2, in sequenza. Ho controllato tutti i sistemi della mia casa un giorno e ho riservato loro degli indirizzi.

In questo modo, quando creo un nuovo sistema, è probabile che il suo indirizzo IP sia 192 .169.1.18.

Un altro modo per utilizzare la console seriale. Puoi utilizzare un programma terminale seriale per accedere al tuo raspberry pi. Suggerirei di utilizzare limpostazione 8N1 (8 bit, nessun bit di parità, 1 bit di stop) con una velocità (baud rate) di 115.200. Avrai bisogno di un connettore da USB a seriale (3V3).

Rispondi

“Fing” o “Net Analyzer” su Android . Mostra tutta la tua rete.

Rispondi

Se sei su Windows ti suggerisco di provare questo script. È principalmente basato sul comando “arp -a”, ma ti consente di risparmiare qualche ulteriore ricerca e ti aiuta quando il tuo Raspberry non è già nella tabella Arp.

Crea un file di testo con il seguente contenuto e rinominalo come find_raspberry_pi.bat

@echo off :: This script, run from a Windows (10) machine, finds a Raspberry Pi on local network set raspIp= set myip= set subnet= :: Get IP for local PC for /f "tokens=1-2 delims=:" %%a in ("ipconfig^|find "IPv4"") do set myip=%%b set myip=%myip:~1% echo IP for local PC: %myip% :: Get subnet set subnet=%myip% setlocal enabledelayedexpansion for /l %%a in (1,1,31) do if NOT "!subnet:~-1!"=="." set subnet=!subnet:~0,-1! set subnet=%subnet:~0,-1% setlocal disabledelayedexpansion echo Subnet: %subnet% echo. :top :: Loop through arp table entries and look for Raspberry Pi"s MAC address for /f "tokens=1" %%f in ("arp -a ^| findstr b8-27-eb") do (set raspIp=%%f) if "%raspIp%"=="" ( echo Discovering network... :: Ping all IPs in subnet from 1 to 254 for /L %%N in (1,1,254) do start /b ping -n 1 -w 200 %subnet%.%%N >nul timeout 1 >nul goto :top ) else ( echo Found Raspberry PI with IP: %raspIp% ) echo. pause 

Disclaimer :

  1. Non sono lautore dello script originale, lho adattato solo un po per funzionare con un Raspberry Pi. Purtroppo non riesco a trovare il contributore originale.
  2. Non è a prova di proiettile, non funzionerà se la sottorete con cui inizia la scansione non è quella corretta.

Tuttavia, lho usata molte volte e è “una soluzione semplice

Risposta

Nel 2020, la risposta accettata non funziona più perché Raspberry Pi viene fornito con un intervallo diverso di indirizzi MAC. Potrei semplicemente aggiungere il “nuovo” MAC come commento, ma la stringa potrebbe cambiare ancora e ancora ogni modello. Ecco qualcosa che è più a prova di futuro.

$ sudo nmap -sP 192.168.150.0/24 |grep "Raspberry Pi Trading" -B2 Nmap scan report for pi4-01.lan (192.168.150.186) Host is up (0.037s latency). MAC Address: DC:A6:32:1B:35:6A (Raspberry Pi Trading) 

La differenza principale sopra: non assumiamo un pattern MAC, ci limitiamo a grep per il (summary), poiché questa etichetta è fornita da nmap stesso. Poiché nmap viene aggiornato continuamente, contiene tabelle interne di indirizzi MAC Raspberry Pi (o utilizza altri criteri per rilevare) e possiamo presumere che continuerà a funzionare.

CAVEAT: Se la tua scansione non identifica tutti i Pis che conosci la rete, quindi ripetere la scansione fino a 10 volte. Un Pi con rete Power Management:on potrebbe non rispondere sempre a una scansione.

La gestione dellalimentazione potrebbe essere un problema per te se stai scansionando più Pis su una LAN, in quanto le scansioni ripetute potrebbero rilevare uno Pi ma non un altro . In tal caso, ripeti le scansioni per cercare differenze (Per confermare se un Pi ha la gestione energetica abilitata, ssh al Pi ed esegui: /sbin/iwconfig wlan0|grep Management)

Rispondi ehm

Presumo che tu non possa connetterti al tuo PI, altrimenti “conosceresti il suo IP.

Se vai alla pagina del tuo router (di solito qualcosa come 192.168.1.1 nel tuo browser) dovresti avere una sezione con i dispositivi già collegati. Puoi provare a collegare e scollegare il PI (e un dispositivo dovrebbe apparire / scomparire dallelenco)

Risposta

Prova questo primo:

arp -a | grep -E --ignore-case "b8:27:eb|dc:a6:32" 

Le due stringhe esadecimali (b8:27:eb|dc:a6:32) in questo comando riflettono le due OUI valori utilizzati da ” The Foundation ” per la produzione di tutti i dispositivi RPi – tramite RPi ver 4B al momento della stesura di questo documento. Se il tuo RPi non è nella tua cache arp questo comando non produrrà nulla di utile. In questo caso, crea il seguente file nel tuo editor preferito e salvalo / scrivilo come pingpong.sh:

#!/bin/sh : ${1?"Usage: $0 ip subnet to scan. eg "192.168.1.""} subnet=$1 for addr in `seq 0 1 255 `; do ( ping -c 3 -t 5 $subnet$addr > /dev/null ) & done arp -a | grep -E --ignore-case "b8:27:eb|dc:a6:32" 

rendilo eseguibile ed eseguilo (usa il tuo indirizzo di rete qui, non necessariamente 192.168.1. ):

$ chmod 755 pingpong.sh $ ./pingpong.sh 192.168.1. 

I risultati potrebbero essere visualizzati come segue :

raspberrypi3b.local (192.168.1.131) at b8:27:eb:1:2:3 on en0 ifscope [ethernet] raspberrypi4b.local (192.168.1.184) at dc:a6:32:2:3:4 on en0 ifscope [ethernet] 

In questo caso, il nome host appare per gentile concessione di mDNS. Se non hai / non usi mDNS / avahi / ecc, il nome host lo farà essere sostituito dal carattere: ?.

Risposta

Raspbian sta usando un cosa chiamata mDNS, che ti consente di accedere al tuo raspberry pi tramite un nome host raspberrypi.local.

Quindi non “Non è più necessario cercare un indirizzo IP, connettiti in questo modo:

ssh [email protected] 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *