Znajdź adres Raspberry PI w sieci lokalnej

76

Muszę znaleźć adres IP Raspberry PI w sieci lokalnej bez podłączania Raspberry do monitora. Jak to zrobić w systemach Linux lub Mac OS?

J. Costa
źródło
możliwy duplikat SSH do Raspberry Pi bez znajomości adresu IP
RPiAwesomeness
Aplikacja Lan Scan na smartfonie wyświetli wszystkie urządzenia w sieci.

Odpowiedzi:

90

Wszystkie adresy MAC urządzeń malinowych zaczęły się od B8: 27: EB .

Tak więc w systemach * nix można to zrobić, wykonując następującą komendę:

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

gdzie 192.168.1.*będzie twoja maska ​​sieci lokalnej. Otrzymasz odpowiedź w rodzaju:

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

192.168.1.179 to adres IP Raspberry Pi w twojej sieci.

Jeśli korzystasz z systemu Mac , możesz użyć Homebrew do zainstalowania nmap :

brew install nmap

W systemie Windows możesz użyć Wireshark i użyć następującego filtru wyświetlania:

eth.addr[0:3] == B8:27:EB
J. Costa
źródło
2
Lub z mniejszą nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
ilością
2
Dzięki @ripat, to jest o wiele bardziej zwięzłe - zaktualizowane! Jeden mały szczegół, musisz uruchomić jako administrator, inaczej nmap nie wyświetli adresu MAC.
J. Costa
3
Nie doceniłbyś znaczenia tej odpowiedzi, dopóki nie spróbujesz bezgłowo zlokalizować swojego raspberrypi w ustawieniu biurowym, w którym adresy IP są usuwane za pomocą DHCP. Pozdrowienia dla tego @ripat
Voke Ransom Anighoro
1
Ta odpowiedź nie działała dla mnie, ponieważ nmap nie wyrzucał za mnie nazw hostów. Jednak zainspirowało mnie to do wyszukiwania otwartych portów ssh za pomocą nmap, co pozwoliło mi znaleźć pi: sudo nmap -p 22 --open -sV 192.168.0.0/24 na postie tego faceta .
Ross Rogers,
nie wystarcza „sudo nmap -sP 192.168.1.0/24” (dla mnie to działało)?
Marian Paździoch
48

Jeśli korzystasz z systemu MacOS lub Linux, spróbuj tego:

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

W systemie Windows możesz użyć:

arp -a | findstr b8-27-eb
mrded
źródło
3
To rozwiązanie jest znacznie szybsze niż rozwiązanie nmap!
ryanm
To rozwiązanie działało dla mnie, w przeciwieństwie do rozwiązania nmap, które dało tylko część listy.
Wilbert
7
To pokaże tylko hosty, które dostały się do twoich tabel arp, więc czasami brakuje ci cichych. Przydałoby się najpierw wykonać skanowanie nmap.
Joseph Sheedy
Może, ale dla mnie to nigdy nie zawiodło. Dodatkowo jest to łatwa pierwsza próba.
amenthes
Dzięki za to. Zmodyfikowałem go nieco i używam arp -n | awk '/b8:27:eb/ {print $1}'teraz.
0x01
8

Używam mDNS / Bonjour, aby nadać mojemu Pi lokalną nazwę, taką jak pi.local. Nie muszę wiedzieć, że to adres IP i działa to na skróty, a kiedy trzeba osadzić link ...

Jak i dlaczego przypisać nazwę lokalną do swojego pi

dfowler7437
źródło
Niesamowite! Kiedyś bawiłem się /etc/hostslokalnie, aby uzyskać tę funkcjonalność na pulpicie, jest to O wiele lepsze rozwiązanie! Dzięki bardzo za wskaźnik!
0x01
7

Jeśli chcesz do tego użyć aplikacji GUI, możesz użyć Yakalanarzędzia ( https://github.com/mozcelikors/yakala ) dla Debiana / Ubuntu. To narzędzie pomaga nie tylko wyszukiwać dostępne sieci typu B i typu C, ale także pomaga bezpośrednio połączyć SSH z siecią:

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

lub

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

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

Oświadczenie: Jestem twórcą Yakala. Wszelkie sugestie / błędy są traktowane bardzo poważnie.

mozcelikors
źródło
1
Klasowe sieciowanie zostało porzucone w 1993 roku, co jest bardzo dawno temu.
Wyścigi lekkości na orbicie
Co to jest sieć klasowa?
Denis
6

Domyślnie nazwa maliny to raspberrypi. Możesz po prostu „pingować raspberrypi”, a odpowiedź echa ICMP podaje adres IP. To zadziałało dla mnie. Upewnij się, że serwer DHCP jest osiągalny, ponieważ karta sieciowa maliny domyślnie znajduje się w trybie klienta DHCP. W przeciwnym razie malina otrzyma adres APIPA.

Jan
źródło
4

W systemie Linux i MAC możesz także wpisać „arp-a” w terminalu i uzyskać listę podłączonych urządzeń, poszukaj urządzenia z B8, na przykład: 192.168.4.5 @ B8 ... raspberry pi IP.

FreshTendrils
źródło
3

Lub możesz uzyskać dostęp do routera za pomocą przeglądarki i znaleźć swoje urządzenie z Androidem - prawie każdy interfejs GUI routera ma usługę, w której możesz sprawdzić wszystkie urządzenia, które są aktualnie podłączone do twojej sieci.

FLBKernel
źródło
3

Jeśli korzystasz z MacOS, użyj PiFinder , jest to aplikacja, która poda ci adres IP Raspberry Pi w twojej sieci.

FreshTendrils
źródło
3

Korzystam z bezpłatnej aplikacji Fing w moim smartfonie z Androidem. Skanuje sieć i pokazuje podłączone urządzenia według typu, w tym Raspberry Pi, a także skanuje dostępne porty. Przydatne, aby sprawdzić, czy SSH, sieć lub VNC są włączone i działają.

Tuxpilgrim
źródło
2

Skopiuj następujące elementy do terminala / konsoli / powłoki:

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

Proszę dostosować 192.168.1. do Twojej indywidualnej sieci.

Dane wyjściowe będą wyglądać mniej więcej tak:

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

192.168.1.109 to adres IP twojego Raspberry Pi… :)

Wilk
źródło
2

Umieść to w pi.php na swoim serwerze internetowym:

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

Konieczne może być utworzenie pliku pi na serwerze WWW z uprawnieniami do zapisu dla serwera WWW.

Położyć

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

w /etc/rc.local na twoim pi.

Uzyskaj adres IP swojej pi, przeglądając http: // yourwebserver / pi

darsie
źródło
2

W przypadku nowej instalacji NOOBS lub Raspbian domyślna nazwa hosta to „raspberrypi”, aw niektórych konfiguracjach sieciowych (tj. Jeśli mDNS jest używany i skonfigurowany), można użyć „raspberrypi.local”. Inną opcją jest uruchomienie arp -ai poszukiwanie raspberrypi

UWAGA: To nie zadziała dla każdej instancji.

linuxgnuru
źródło
Ta odpowiedź wydaje się mieszać kilka rzeczy: różne wersje IP, DNS i być może mDNS. To, czy .localmożna go użyć, zwykle nie zależy od IPv6, a także od obecności routera. Gdy dostępna jest obsługa mDNS, oznacza to, że pi-name.local rozwiązuje IPv6 lub nie. Niektóre domowe routery używają również .local jako lokalnej domeny DNS, ponownie jest to niezależne od IPv6 i zależy od modelu routera. Niektóre routery domowe używają różnych domen, na przykład pi-name.fritz.box.
TheDiveO,
2

Mój router przypisuje nowo odkrytym systemom adres IP zaczynający się od 192.168.1.2. Pewnego dnia przejrzałem wszystkie systemy w moim domu i zarezerwowałem dla nich adresy.

W ten sposób, kiedy tworzę nowy system, istnieje szansa, że ​​jego adres IP to 192.169.1.18.

Kolejny sposób korzystania z konsoli szeregowej. Możesz użyć szeregowego programu terminalowego, aby zalogować się do swojego Raspberry Pi. Sugerowałbym użycie ustawienia 8N1 (8 bitów, brak bitu parzystości, 1 bit stopu) przy prędkości (szybkości transmisji) wynoszącej 115 200. Będziesz potrzebował złącza USB to serial (3V3).

NomadMaker
źródło
1

Zakładam, że nie możesz połączyć się z tobą PI, w przeciwnym razie poznałbyś jego adres IP.

Jeśli przejdziesz na stronę routera (zwykle coś takiego jak 192.168.1.1 w przeglądarce), powinieneś mieć sekcję z już podłączonymi urządzeniami. Możesz spróbować podłączyć i odłączyć PI (a jedno urządzenie powinno pojawić się / zniknąć z listy)

javirs
źródło
1

„Fing” lub „Net Analyzer” na Androidzie. Pokazuje całą sieć.

Andy Anderson
źródło