Jag måste hitta Raspberry PI-IP-adressen i det lokala nätverket utan att ansluta Raspberry till en bildskärm. Hur gör jag det på Linux- eller Mac OS-system?
Kommentarer
- möjlig duplikat av SSH till hallon pi utan att veta ip-adress
- Lan scan app på smarttelefonen visar alla enheter i ditt nätverk.
Svar
Alla hallon-enheter MAC-adresser började med B8: 27: EB (för RPi4 B börjar de med dc:a6:32
, ersätt där så är lämpligt).
Så på * nix -system kan detta åstadkommas genom att utföra följande kommando:
nmap -sP 192.168.1.0/24 | awk "/^Nmap/{ip=$NF}/B8:27:EB/{print ip}"
där 192.168.1.*
blir din lokala nätverksmask. Du får ett svar som:
Nmap scan report for raspberrypi.localnetwork.lan (192.168.1.179)
192.168.1.179 är Raspberry Pi IP-adressen i ditt nätverk.
Om du är på ett Mac -system kan du använda Homebrew för att installera nmap :
brew install nmap
På Windows , du kan använda Wireshark och använda följande visningsfilter:
eth.addr[0:3] == B8:27:EB
Kommentarer
- Eller med mindre rör:
nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
- Tack @ripat, det är mycket mer kortfattad – uppdaterad! En liten detalj, du måste köra som administratör annars visar nmap inte MAC-adressen.
- Du skulle inte uppskatta vikten av det här svaret förrän du har försökt att hitta din raspberrypi utan huvud i en kontorsmiljö där IP ’ s delas ut med DHCP. Skål för det här @ripat
- Det här svaret fungerade inte ’ för mig eftersom nmap inte ’ t spottade ut värdnamn för mig. Det inspirerade mig dock att söka efter öppna ssh-portar med nmap och det gjorde det möjligt för mig att hitta pi:
sudo nmap -p 22 --open -sV 192.168.0.0/24
per detta kille ’ s inlägg . - isn ’ t ” sudo nmap -sP 192.168.1.0/24″ nog (det oroade mig)?
Svar
Om du kör MacOS eller Linux, prova den här:
$ arp -na | grep -i b8:27:eb
I Windows kan du användning:
arp -a | findstr b8-27-eb
På RPi 4B måste du använda en annan sträng för jämförelse (dc:a6:32:be:95
). kontrollera det på din RPi genom att
ip -br link
Det kommer att finnas poster för varje nätverkskort. eth0
är kabel-internet, wlan0
är WiFi.
Kommentarer
- Den här lösningen är mycket snabbare än en nmap-lösning!
- Denna lösning fungerade för mig, till skillnad från e nmap-lösning som bara gav en del av listan.
- Detta visar bara värdar som har gjort det till dina arp-tabeller, så ibland saknar de tysta. Det kan hjälpa att göra en nmap-skanning en gång.
- Det kanske, men för mig misslyckades det aldrig. Dessutom är det ’ ett enkelt första försök.
- Tack för det här. Jag ändrade det något och använder
arp -n | awk '/b8:27:eb/ {print $1}'
nu.
Svar
Jag använder mDNS / Bonjour för att ge min Pi ett lokalt namn som pi.local. Jag behöver inte veta att det är IP-adressen och det fungerar för genvägar och när du behöver bädda in en länk …
Hur och varför man tilldelar ett lokalt namn till din Pi
Kommentarer
- Häftigt! Jag brukade fiska runt med
/etc/hosts
lokalt för att få denna funktionalitet på mitt skrivbord, detta är en MYCKET bättre lösning! Tack så mycket för pekaren!
Svar
Om du vill använda ett GUI-program för det kan du använda verktyget Yakala
( https://github.com/mozcelikors/yakala ) för Debian / Ubuntu. Det här verktyget hjälper dig inte bara att söka efter tillgängliga typ B- och typ C-nätverk utan hjälper dig också att direkt SSH in i nätverket:
sudo add-apt-repository ppa:mozcelikors/yakala sudo apt-get update sudo apt-get install yakala
eller
git clone https://github.com/mozcelikors/yakala cd yakala && sudo ./install.sh
Ansvarsfriskrivning: Jag är skaparen av Yakala. Eventuella förslag / buggar tas väldigt seriöst.
Kommentarer
- Klassiskt nätverk övergavs 1993, vilket är mycket länge sedan.
- Vad är klassfullt nätverk?
Svar
Hallonets namn är som standard raspberrypi.Du kan bara ”pinga raspberrypi” och ICMP-ekosvaret ger dig IP-adressen. Det fungerade för mig. Se till att DHCP-servern kan nås eftersom hallonets NIC är som standard i DHCP-klientläge. Annars får hallonet en APIPA-adress.
Svar
I Linux och MAC kan du också skriva in ”arp – a” i terminalen och du kan få en lista över anslutna enheter, leta efter den med B8 i, exempel: 192.168.4.5 @ B8 … blir hallon pi IP.
Svar
Jag använder gratis Fing -appen i min Android-smartphone. Den genomsöker nätverket och visar de anslutna enheterna efter typ, inklusive Raspberry Pi, samt skannar tillgängliga portar. Praktiskt att se om SSH, webb eller VNC är aktiverat och kör.
Svar
Eller så kan du komma åt din router via webbläsaren och hitta din Android-enhet – nästan alla routers GUI har en tjänst där du kan kontrollera alla enheter som för närvarande är anslutna till ditt nätverk.
Svar
Om du kör MacOS använder du PiFinder , det är ett program som berättar IP: n för en Raspberry Pi i ditt nätverk.
Svar
Kopiera följande till din terminal / konsol / skal:
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
Anpassa 192.168.1. till ditt individuella nätverk.
utgången ser ut så här:
(192.168.1.109) B8: 27: EE: DD: CC: A
192.168.1.109 skulle vara din Raspberry Pi: s IP … 🙂
Svar
Lägg detta i pi.php på din webbserver:
<?php $fp = fopen("pi", "w"); fwrite($fp, $_REQUEST["ip"],1000); fclose($fp); ?>
Du kan behöva skapa filen pi på din webbserver med skrivbehörighet för din web server.
Sätt
curl http://yourwebserver/pi.php -d ip=`hostname -I`
i /etc/rc.local på din pi.
Få IP av din pi genom att bläddra i http://yourwebserver/pi
Svar
När du använder en ny installation av NOOBS eller Raspbian är standardvärdnamnet ”raspberrypi” och i vissa nätverk ork-konfigurationer (dvs. om mDNS används och konfigureras) kan du använda ”raspberrypi.local”. Ett annat alternativ är att köra arp -a
och leta efter raspberrypi
OBS: Detta fungerar inte för varje instans.
Kommentarer
- Det svaret verkar förväxla flera saker: olika IP-versioner, DNS och kanske mDNS. Huruvida
.local
kan användas brukar ’ beror inte på IPv6, och inte heller på att ha en router närvarande. När mDNS-stöd är tillgängligt löser pi-name.local, IPv6 eller inte. Vissa hemroutrar använder också .local som deras lokala DNS-domän, igen är detta oberoende av IPv6 och beror på routermodellen. Vissa hemroutrar använder olika domäner, till exempel pi-name.fritz.box.
Svar
Min router tilldelar nyupptäckta system en ip-adress från 192.168.1.2, sekventiellt. Jag gick igenom varje system i mitt hem en dag och reserverade adresser för dem.
På det sättet när jag skapar ett nytt system är chansen att dess IP-adress blir 192 .169.1.18.
Ett annat sätt att använda seriekonsolen. Du kan använda ett seriellt terminalprogram för att logga in på ditt hallon pi. Jag föreslår att du använder inställningen 8N1 (8-bitar, ingen paritetsbit, 1 stoppbit) med en hastighet (baudhastighet) på 115.200. Du behöver en USB till seriell (3V3) kontakt.
Svar
”Fing” eller ”Net Analyzer” på Android Visar hela nätverket.
Svar
Om du är i Windows föreslår jag att du testar det här skriptet. baserat på kommandot ”arp -a”, men det sparar lite extra grävning och hjälper dig när ditt hallon inte redan finns i Arp-tabellen.
Skapa en textfil med följande innehåll och byt namn på den som 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
Ansvarsfriskrivningar :
- Jag är inte författaren till originalskriptet, jag anpassade det bara lite för att arbeta med en Raspberry Pi. Tyvärr kan jag inte hitta den ursprungliga bidragsgivaren.
- Det är inte skottsäkert, det fungerar inte om undernätet som det börjar skanna inte är rätt.
Ändå använde jag det många gånger och det är en enkel lösning
Svar
2020 fungerar det accepterade svaret inte längre eftersom Raspberry Pi levereras med olika MAC-adresser. Jag kunde bara lägga till den ”nya” MAC som en kommentar, men strängen kan ändras om och om igen varje modell. Här är något som är mer framtidssäkert.
$ 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)
Huvudskillnaden ovan: vi antar inte ett MAC-mönster, vi grep bara för (sammanfattningen), eftersom den här etiketten tillhandahålls av nmap
själv. Eftersom nmap
uppdateras kontinuerligt innehåller den interna tabeller med Raspberry Pi MAC-adresser (eller använder andra kriterier för att upptäcka) och vi kan anta som kommer att fortsätta fungera.
CAVEAT: Om din skanning inte identifierar alla Pis som du vet är på nätverket, upprepa sedan skanningen – upp till tio gånger. En Pi som har nätverk Power Management:on
kanske inte alltid svarar på en skanning.
Strömhantering kan vara ett problem för dig om du söker efter flera Pis på ett LAN, eftersom upprepade skanningar kan upptäcka en Pi men inte en annan . I så fall, upprepa skanningarna leta efter skillnader . (För att bekräfta om en Pi har aktiverat energihantering, ssh till Pi och kör: /sbin/iwconfig wlan0|grep Management
)
Answ är
Jag antar att du inte kan ansluta till din PI, annars skulle du veta dess IP.
Om du går till din routersida (vanligtvis något som 192.168.1.1 i din webbläsare) där borde du ha en sektion med de redan anslutna enheterna. Du kan försöka ansluta och koppla bort PI (och en enhet ska visas / försvinna från listan)
Svar
Prova detta först:
arp -a | grep -E --ignore-case "b8:27:eb|dc:a6:32"
De två hexsträngarna (b8:27:eb|dc:a6:32
) i detta kommando återspeglar de två OUI -värden som används av ” Foundation ” för produktion av alla RPi-enheter – genom RPi ver 4B när detta skrivs. Om din RPi inte är ”t i din arp-cache detta kommando ger inget nyttigt. Om så är fallet, skapa sedan följande fil i din favoritredigerare och spara / skriv den som 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"
gör det körbart och kör det (använd din nätverksadress här, inte nödvändigtvis 192.168.1. ):
$ chmod 755 pingpong.sh $ ./pingpong.sh 192.168.1.
Dina resultat kan visas som följer :
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]
I det här fallet visas värdnamnet med tillstånd av mDNS. Om du inte har / inte använder mDNS / avahi / etc kommer värdnamnet ersättas med tecknet: ?
.
Svar
Raspbian använder en sak som heter mDNS
, som låter dig komma åt ditt hallon-pi med ett värdnamn raspberrypi.local
.
Så du gör ”behöver inte söka efter en IP-adress längre, anslut bara så:
ssh [email protected]