Musím najít Raspberry PI IP adresu v místní síti bez připojení Raspberry k monitoru. Jak to provedu v systémech Linux nebo Mac OS?
Komentáře
- možný duplikát SSH do maliny pi bez znalosti adresy IP
- Aplikace LAN Scan na chytrém telefonu zobrazí všechna zařízení ve vaší síti.
Odpovědět
Všechny adresy MAC malinových zařízení začínají B8: 27: EB (u RPi4 B začínají dc:a6:32
, případně vyměňte).
Takže v systémech * nix toho lze dosáhnout provedením následujícího příkazu:
nmap -sP 192.168.1.0/24 | awk "/^Nmap/{ip=$NF}/B8:27:EB/{print ip}"
kde 192.168.1.*
bude vaše lokální síťová maska. Získáte odpověď jako:
Nmap scan report for raspberrypi.localnetwork.lan (192.168.1.179)
192.168.1.179 je IP adresa Raspberry Pi ve vaší síti.
Pokud jste v systému Mac můžete k instalaci použít Homebrew nmap :
brew install nmap
V systému Windows , můžete použít Wireshark a použít následující filtr zobrazení:
eth.addr[0:3] == B8:27:EB
Komentáře
- Nebo s menším počtem kanálů:
nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
- Díky @ripat, to je mnohem víc stručně – aktualizováno! Jeden malý detail, který musíte spustit jako správce, jinak nmap nezobrazí MAC adresu.
- Ocenili byste důležitost této odpovědi, dokud se nepokusíte bezhlavě lokalizovat své raspberrypi v kancelářském prostředí, kde IP ‚ s jsou distribuovány pomocí DHCP. Na zdraví @ripat
- Tato odpověď pro mě ‚ nefungovala, protože nmap ‚ nevyplivl jména hostitelů pro mě. Inspirovalo mě to však hledat otevřené porty ssh pomocí nmap a to mi umožnilo najít pi:
sudo nmap -p 22 --open -sV 192.168.0.0/24
per this chlap ‚ s příspěvek . - isn ‚ t “ sudo nmap -sP 192.168.1.0/24″ dost (to mě trápilo)?
Odpovědět
Pokud používáte MacOS nebo Linux, zkuste tento:
$ arp -na | grep -i b8:27:eb
V systému Windows můžete use:
arp -a | findstr b8-27-eb
Na RPi 4B musíte pro srovnání použít jiný řetězec (dc:a6:32:be:95
). zkontrolujte jej na svém RPi
ip -br link
Pro každou síťovou kartu budou záznamy. eth0
je kabelový internet, wlan0
je WiFi.
Komentáře
- Toto řešení je mnohem rychlejší než řešení nmap!
- Toto řešení pro mě fungovalo, na rozdíl od th Řešení nmap, které poskytlo pouze část seznamu.
- Zobrazí se pouze hostitelé, kteří se dostali do vašich arp tabulek, takže někdy chybí ty tiché. Možná by pomohlo provést nejprve skenování nmap.
- Možná, ale pro mě to nikdy neselhalo. Navíc je to ‚ snadný první pokus.
- Děkujeme za to. Mírně jsem to upravil a nyní používám
arp -n | awk '/b8:27:eb/ {print $1}'
.
Odpovědět
Používám mDNS / Bonjour, abych svému Pi dal místní název jako pi.local. Nepotřebuji znát jeho IP adresu a toto funguje pro zástupce a když potřebujete vložit odkaz …
Jak a proč přiřadit místní název vašeho Pi
Komentáře
- Úžasné! Dříve jsem se pohrával s
/etc/hosts
lokálně pro získání této funkce na mém počítači, je to mnohem lepší řešení! Děkuji moc za ukazatel!
Odpovědět
Chcete-li k tomu použít aplikaci GUI, můžete použít nástroj Yakala
( https://github.com/mozcelikors/yakala ) pro Debian / Ubuntu. Tento nástroj vám pomůže nejen vyhledávat dostupné sítě typu B a typu C, ale také vám pomůže přímo SSH do sítě:
sudo add-apt-repository ppa:mozcelikors/yakala sudo apt-get update sudo apt-get install yakala
nebo
git clone https://github.com/mozcelikors/yakala cd yakala && sudo ./install.sh
Zřeknutí se odpovědnosti: Jsem tvůrcem Yakaly. Jakékoli návrhy / chyby jsou brány velmi vážně.
Komentáře
- Klasická síť byla opuštěna v roce 1993, což je velmi dávno.
- Co je to prvotřídní síťování?
Odpověď
Ve výchozím nastavení je název maliny raspberrypi.Stačí „ping raspberrypi“ a odpověď ICMP na echo vám dá IP adresu. Fungovalo to pro mě. Ujistěte se, že je server DHCP dosažitelný, protože síťová karta maliny je ve výchozím nastavení v režimu klienta DHCP. Jinak malina získá adresu APIPA.
Odpovědět
V linuxu a MAC můžete také do terminálu zadat „arp – a“ a můžete získat seznam připojených zařízení, vyhledat zařízení s B8, například: 192.168.4.5 @ B8 … bude IP malina pi.
Odpověď
Používám bezplatnou Fing v mém smartphonu se systémem Android. Skenuje síť a zobrazuje připojená zařízení podle typu, včetně Raspberry Pi, a také skenuje dostupné porty. Je užitečné zjistit, zda jsou povoleny SSH, web nebo VNC a běží.
Odpověď
Nebo můžete přistupovat k routeru pomocí prohlížeče a najít zařízení Android – téměř každý GUI routeru má služba, kde můžete zkontrolovat všechna zařízení, která jsou aktuálně připojena k vaší síti.
Odpovědět
Pokud používáte MacOS, použijte PiFinder , je to aplikace, která vám sdělí IP adresu Raspberry Pi ve vaší síti.
Odpověď
Zkopírujte do svého Terminálu / Konzole / Shell následující:
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
Přizpůsobte 192.168.1. vaší individuální síti.
výstup bude vypadat asi takto:
(192.168.1.109) B8: 27: EE: DD: CC: A
192.168.1.109 bude IP vaší Raspberry Pi … 🙂
Odpověď
Vložte to do souboru pi.php na váš webový server:
<?php $fp = fopen("pi", "w"); fwrite($fp, $_REQUEST["ip"],1000); fclose($fp); ?>
Možná budete muset vytvořit soubor pi na svém webovém serveru s oprávněními pro zápis pro svůj web server.
Vložte
curl http://yourwebserver/pi.php -d ip=`hostname -I`
do /etc/rc.local na své pi.
Získejte IP vašeho pi procházením http://yourwebserver/pi
odpověď
Při použití nové instalace NOOBS nebo Raspbian je výchozí název hostitele „raspberrypi“ a v některých sítích konfigurace ork (tj. pokud je mDNS používán a nakonfigurován) můžete použít „raspberrypi.local“. Další možností je spustit arp -a
a vyhledat raspberrypi
POZNÁMKA: Toto nebude fungovat pro každou instanci.
Komentáře
- Zdá se, že tato odpověď mísí několik věcí: různé verze IP, DNS a možná mDNS. Zda lze
.local
použít, obvykle ‚ t nezávisí na protokolu IPv6 a také na tom, zda je k dispozici router. Když je k dispozici podpora mDNS, pak pi-name.local vyřeší, IPv6 nebo ne. Některé domácí routery také používají .local jejich místní doména DNS, opět je nezávislá na protokolu IPv6 a závisí na modelu směrovače. Některé domácí směrovače používají různé domény, například pi-name.fritz.box.
Odpověď
Můj router přiděluje nově objeveným systémům postupně IP adresu od 192.168.1.2. Jednoho dne jsem prošel všemi systémy v domácnosti a rezervoval jim adresy.
Tímto způsobem, když vytvořím nový systém, je pravděpodobné, že jeho IP adresa bude 192 .169.1.18.
Další způsob použití sériové konzoly. K přihlášení do své malinové pí můžete použít program sériového terminálu. Navrhoval bych použít nastavení 8N1 (8 bitů, žádný paritní bit, 1 stop bit) s rychlostí (baud rate) 115 200. Budete potřebovat konektor USB na sériový (3V3).
Odpovědět
„Fing“ nebo „Net Analyzer“ v systému Android . Zobrazuje celou vaši síť.
Odpověď
Pokud používáte Windows, doporučuji tento skript vyzkoušet. Většinou na základě příkazu „arp -a“, ale ušetří vám další kopání a pomůže vám, když vaše Raspberry ještě není v tabulce Arp.
Vytvořte textový soubor s následujícím obsahem a přejmenujte jej jako 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
Odmítnutí odpovědnosti :
- Nejsem autorem původního scénáře, jen jsem ho trochu upravil pro práci s Raspberry Pi. Bohužel nemohu najít původního přispěvatele.
- Není to neprůstřelné, nebude fungovat, pokud podsíť, která začne skenovat, není správná.
Přesto jsem ji použil mnohokrát a je to jednoduché řešení
Odpověď
V roce 2020 již přijatá odpověď nefunguje, protože Raspberry Pi je dodáván s jiným rozsahem MAC adres. Mohl bych jen přidat „nový“ MAC jako komentář, ale řetězec se mohl každý model znovu a znovu změnit. Tady je něco, co má větší budoucnost.
$ 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)
Hlavní rozdíl výše: nepředpokládáme vzor MAC, pouze grep pro (shrnutí), protože tento štítek poskytuje nmap
sám. Protože nmap
je neustále aktualizován, obsahuje interní tabulky MAC adres Raspberry Pi (nebo k detekci používá jiná kritéria) a můžeme předpokládat který bude pokračovat v práci.
CAVEAT: Pokud váš sken neidentifikuje všechny PIS, o kterých víte, že jsou síť, pak opakujte skenování – až 10krát. Pi, který má síť Power Management:on
, nemusí na skenování vždy reagovat.
Může být správa napájení problém pro vás, pokud skenujete více Pis v síti LAN, protože opakované skenování může detekovat jeden Pi, ale ne jiný . V takovém případě opakujte skenování a hledejte rozdíly . (Chcete-li ověřit, zda má Pi povolenou správu napájení, ssh na Pi a spusťte: /sbin/iwconfig wlan0|grep Management
)
Answ er
Předpokládám, že se k vám nemůžete připojit PI, jinak znáte jeho IP.
Pokud přejdete na stránku routeru (obvykle něco jako 192.168.1.1 ve vašem prohlížeči) tam byste měli mít sekci s již připojenými zařízeními. Můžete zkusit připojit a odpojit PI (a jedno zařízení by se mělo objevit / zmizet ze seznamu)
Odpověď
Vyzkoušejte toto first:
arp -a | grep -E --ignore-case "b8:27:eb|dc:a6:32"
Dva hexadecimální řetězce (b8:27:eb|dc:a6:32
) v tomto příkazu odrážejí dva OUI hodnoty používané “ Nadací “ pro výrobu všech zařízení RPi – prostřednictvím RPi ver 4B od tohoto psaní. Pokud váš RPi není ve vaší arp mezipaměti tento příkaz nepřinese nic užitečného. Pokud tomu tak je, vytvořte ve svém oblíbeném editoru následující soubor a uložte / zapište jej jako 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"
udělejte jej spustitelným a spusťte jej (zde použijte svoji síťovou adresu, ne nutně 192.168.1. ):
$ chmod 755 pingpong.sh $ ./pingpong.sh 192.168.1.
Vaše výsledky se mohou zobrazit následovně :
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]
V tomto případě se název hostitele zobrazí s laskavým svolením mDNS. Pokud nemáte / nemáte „mDNS / avahi / atd. být nahrazen znakem: ?
.
Odpověď
Raspbian používá a věc zvaná mDNS
, která vám umožní přístup k vaší malině pi pomocí názvu hostitele raspberrypi.local
.
Takže nemusíte „Už nemusíte hledat IP adresu, jednoduše se připojte takto:
ssh [email protected]