Jeg er nødt til at finde Raspberry PI IP-adressen på det lokale netværk uden at forbinde Raspberry til en skærm. Hvordan gør jeg det på Linux- eller Mac OS-systemer?
Kommentarer
- mulig duplikat af SSH i hindbær pi uden at kende ip-adresse
- Lan scan app på smart telefon viser alle enheder på dit netværk.
Svar
Alle raspberry-enheder MAC-adresser startede med B8: 27: EB (for RPi4 B starter de med dc:a6:32
, udskift hvor det er relevant).
Så på * nix -systemer kan dette opnås ved at udføre følgende kommando:
nmap -sP 192.168.1.0/24 | awk "/^Nmap/{ip=$NF}/B8:27:EB/{print ip}"
hvor 192.168.1.*
vil være din lokale netværksmaske. Du får et svar som:
Nmap scan report for raspberrypi.localnetwork.lan (192.168.1.179)
192.168.1.179 er Raspberry Pi IP-adressen på dit netværk.
Hvis du er på et Mac -system kan du bruge Homebrew til at installere nmap :
brew install nmap
Til Windows , kan du bruge Wireshark og bruge følgende displayfilter:
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}'
- Tak @ripat, det er meget mere kortfattet – opdateret! En lille detalje, du skal køre som administrator, ellers viser nmap ikke MAC-adressen.
- Du vil ikke sætte pris på vigtigheden af dette svar, før du har forsøgt at finde din raspberrypi uden hoved i en kontorindstilling, hvor IP ‘ s uddeles ved hjælp af DHCP. Skål for denne @ripat
- Dette svar fungerede ikke ‘ for mig, da nmap ikke ‘ t spyttede ud værtsnavne til mig. Det inspirerede mig dog til at søge efter åbne ssh-porte med nmap, og det gjorde det muligt for mig at finde pi:
sudo nmap -p 22 --open -sV 192.168.0.0/24
pr. Dette fyr ‘ s indlæg . - isn ‘ t ” sudo nmap -sP 192.168.1.0/24″ nok (det bekymrede mig)?
Svar
Hvis du kører MacOS eller Linux, kan du prøve denne:
$ arp -na | grep -i b8:27:eb
På windows kan du brug:
arp -a | findstr b8-27-eb
På RPi 4B skal du bruge en anden streng til sammenligning (dc:a6:32:be:95
). tjek det på din RPi ved
ip -br link
Der vil være poster for hvert netværkskort. eth0
er kabel-internet, wlan0
er WiFi.
Kommentarer
- Denne løsning er meget hurtigere end en nmap-løsning!
- Denne løsning fungerede for mig, i modsætning til th e nmap-løsning, der kun gav en del af listen.
- Dette viser kun værter, der har gjort det til dine arp-tabeller, så nogle gange savner de stille. Det kan måske hjælpe med at lave en nmap-scanning en gang.
- Det kan, men for mig mislykkedes det aldrig. Plus det er ‘ et let første forsøg.
- Tak for dette. Jeg ændrede det lidt og brug
arp -n | awk '/b8:27:eb/ {print $1}'
nu.
Svar
Jeg bruger mDNS / Bonjour til at give min Pi et lokalt navn som pi.local. Jeg behøver ikke at vide, at det er IP-adressen, og dette fungerer til genveje, og når du skal integrere et link …
Hvordan og hvorfor tildeles et lokalt navn til din Pi
Kommentarer
- Awesome! Jeg plejede at snuble med
/etc/hosts
lokalt for at få denne funktionalitet på mit skrivebord, dette er en MEGET bedre løsning! Mange tak for markøren!
Svar
Hvis du vil bruge et GUI-program til det, kan du bruge Yakala
værktøj ( https://github.com/mozcelikors/yakala ) til Debian / Ubuntu. Dette værktøj hjælper dig ikke kun med at søge efter tilgængelige Type B- og Type C-netværk, men hjælper dig også med at SSH direkte i netværket:
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
Ansvarsfraskrivelse: Jeg er skaberen af Yakala. Eventuelle forslag / bugs tages meget alvorligt.
Kommentarer
- Klassisk netværk blev opgivet i 1993, hvilket er meget længe siden.
- Hvad er klassefyldt netværk?
Svar
Hindbærets navn er som standard raspberrypi.Du kan bare “pinge raspberrypi”, og ICMP-ekkosvaret giver dig IP-adressen. Det fungerede for mig. Sørg for, at DHCP-serveren kan nås, da hindbærets NIC er som standard i DHCP-klienttilstand. Ellers får hindbæret en APIPA-adresse.
Svar
I linux og MAC kan du også indtaste “arp – a” i terminalen, og du kan få en liste over tilsluttede enheder, se efter den med B8 i, eksempel: 192.168.4.5 @ B8 … bliver hindbær pi IP.
Svar
Jeg bruger den gratis Fing -appen i min Android-smartphone. Den scanner netværket og viser de tilsluttede enheder efter type, inklusive Raspberry Pi, samt scanning af tilgængelige porte. Praktisk at se om SSH, web eller VNC er aktiveret og kører.
Svar
Eller du kan få adgang til din router via browser og finde din Android-enhed – næsten alle routers GUI har en tjeneste, hvor du kan kontrollere alle enheder, der i øjeblikket er tilsluttet dit netværk.
Svar
Hvis du kører MacOS, skal du bruge PiFinder , det er et program, der fortæller dig IPen til en Raspberry Pi på dit netværk.
Svar
Kopier følgende til din terminal / konsol / 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
Tilpas 192.168.1. til dit individuelle netværk.
output vil se sådan ud:
(192.168.1.109) B8: 27: EE: DD: CC: A
192.168.1.109 ville være din Raspberry Pis IP … 🙂
Svar
Sæt dette i pi.php på din webserver:
<?php $fp = fopen("pi", "w"); fwrite($fp, $_REQUEST["ip"],1000); fclose($fp); ?>
Du skal muligvis oprette filen pi på din webserver med skrivetilladelser til dit web server.
Sæt
curl http://yourwebserver/pi.php -d ip=`hostname -I`
i /etc/rc.local på din pi.
Få IP-adressen af din pi ved at gennemse http://yourwebserver/pi
Svar
Når du bruger en ny installation af NOOBS eller Raspbian, er standardværtsnavnet “raspberrypi” og i nogle netværk ork konfigurationer (dvs. hvis mDNS er i brug og konfigureret) kan du bruge “raspberrypi.local”. En anden mulighed er at køre arp -a
og kigge efter raspberrypi
BEMÆRK: Dette fungerer ikke for enhver forekomst.
Kommentarer
- Dette svar synes at blande flere ting: forskellige IP-versioner, DNS og måske mDNS. Uanset om
.local
normalt kan bruges ‘ t afhænger af IPv6 og heller ikke af at have en router til stede. Når mDNS-understøttelse er tilgængelig, så løser pi-name.local, IPv6 eller ej. Nogle hjemroutere bruger også .local deres lokale DNS-domæne, igen er dette uafhængigt af IPv6 og afhænger af routermodellen. Nogle hjemroutere bruger forskellige domæner, såsom pi-name.fritz.box.
Svar
Min router tildeler nyopdagede systemer en ip-adresse, der starter ved 192.168.1.2, sekventielt. Jeg gik igennem hvert system i mit hjem en dag og reserverede adresser til dem.
På den måde når jeg opretter et nyt system, er chancerne for, at dets ip-adresse vil være 192 .169.1.18.
En anden måde at bruge seriekonsollen på. Du kan bruge et serielt terminalprogram for at logge ind på din hindbær pi. Jeg vil foreslå at bruge indstillingen 8N1 (8-bits, ingen paritetsbit, 1 stopbit) med en hastighed (baudrate) på 115.200. Du skal bruge et USB til serielt (3V3) stik.
Svar
“Fing” eller “Net Analyzer” på Android Viser hele dit netværk.
Svar
Hvis du bruger Windows, foreslår jeg dig at prøve dette script. Det er mest baseret på kommandoen “arp -a”, men det sparer dig lidt ekstra grave og hjælper dig, når dit hindbær ikke allerede er i Arp-tabellen.
Opret en tekstfil med følgende indhold og omdøb det 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
Ansvarsfraskrivelser :
- Jeg er ikke forfatter til det originale script, jeg har bare tilpasset det lidt til at arbejde med en Raspberry Pi. Desværre kan jeg ikke finde den originale bidragyder.
- Det er ikke skudsikkert, det fungerer ikke, hvis det undernet, det begynder at scanne, ikke er det rigtige.
Stadig brugte jeg det mange gange og det er en enkel løsning
Svar
I 2020 fungerer det accepterede svar ikke længere, fordi Raspberry Pi leveres med et andet udvalg af MAC-adresser. Jeg kunne bare tilføje den “nye” MAC som en kommentar, men strengen kunne ændre sig igen og igen hver model. Her er noget, der er mere fremtidssikkert.
$ 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)
Den væsentligste forskel ovenfor: vi antager ikke et MAC-mønster, vi grep bare til (resumé), da denne etiket er leveret af nmap
i sig selv. Da nmap
opdateres løbende, indeholder den interne tabeller med Raspberry Pi MAC-adresser (eller bruger andre kriterier til at opdage), og vi kan antage det vil fortsætte med at arbejde.
CAVEAT: Hvis din scanning ikke identificerer alle Pis, du kender, er tændt netværket, gentag derefter scanningen – op til 10 gange. En Pi, der har netværk Power Management:on
, svarer muligvis ikke altid på en scanning.
Strømstyring er muligvis et problem for dig, hvis du scanner efter flere Pis på et LAN, da gentagne scanninger muligvis registrerer en Pi, men ikke en anden . I så fald skal du gentage scanningerne se efter forskelle (For at bekræfte, om en Pi har aktiveret strømstyring, skal du ssh til Pi og køre: /sbin/iwconfig wlan0|grep Management
)
Answ er
Jeg formoder, at du ikke kan oprette forbindelse til din PI, ellers kender du dens IP.
Hvis du går til din routerside (normalt noget som 192.168.1.1 i din browser) der skal du have en sektion med de allerede tilsluttede enheder. Du kan prøve at tilslutte og frakoble PI (og en enhed skal vises / forsvinde fra listen)
Svar
Prøv dette først:
arp -a | grep -E --ignore-case "b8:27:eb|dc:a6:32"
De to hex strenge (b8:27:eb|dc:a6:32
) i denne kommando afspejler de to OUI værdier brugt af ” Foundation ” til produktion af alle RPi-enheder – gennem RPi ver 4B, når dette skrives. Hvis din RPi ikke er “t i din arp-cache denne kommando giver ikke noget nyttigt. Hvis det er tilfældet, skal du oprette følgende fil i din yndlingseditor og gemme / skrive 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 eksekverbart, og kør det (brug din netværksadresse her, ikke nødvendigvis 192.168.1. ):
$ chmod 755 pingpong.sh $ ./pingpong.sh 192.168.1.
Dine resultater kan vises som følger :
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 dette tilfælde vises værtsnavnet med tilladelse til mDNS. Hvis du ikke har / ikke bruger mDNS / avahi / etc, vil værtsnavnet erstattes af tegnet: ?
.
Svar
Raspbian bruger en ting kaldet mDNS
, som giver dig adgang til din hindbær-pi med et værtsnavn raspberrypi.local
.
Så du gør ikke “behøver ikke at søge efter en IP-adresse længere, bare opret forbindelse sådan:
ssh [email protected]