Preciso encontrar o endereço IP do Raspberry PI na rede local sem conectar o Raspberry a um monitor. Como faço isso em sistemas Linux ou Mac OS?
Comentários
- possível duplicata de SSH em raspberry pi sem saber o endereço IP
- O aplicativo de varredura LAN no smartphone mostrará todos os dispositivos em sua rede.
Resposta
Todos os endereços MAC de dispositivos raspberry começaram com B8: 27: EB (para RPi4 B eles começam com dc:a6:32
, substitua quando apropriado).
Então, em sistemas * nix , isso pode ser feito executando o seguinte comando:
nmap -sP 192.168.1.0/24 | awk "/^Nmap/{ip=$NF}/B8:27:EB/{print ip}"
onde 192.168.1.*
será sua máscara de rede local. Você receberá uma resposta como:
Nmap scan report for raspberrypi.localnetwork.lan (192.168.1.179)
O 192.168.1.179 é o endereço IP do Raspberry Pi em sua rede.
Se você for em um sistema Mac , você pode usar o Homebrew para instalar nmap :
brew install nmap
No Windows , você pode usar o Wireshark e o seguinte filtro de exibição:
eth.addr[0:3] == B8:27:EB
Comentários
- Ou com menos tubos:
nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
- Obrigado @ripat, isso é muito mais conciso – atualizado! Um pequeno detalhe, você precisa executar como administrador ou o nmap não exibirá o endereço MAC.
- Você não apreciaria a importância desta resposta até que tenha tentado localizar seu raspberrypi em um ambiente de escritório onde IP ‘ s são distribuídos usando DHCP. Parabéns por este @ripat
- Esta resposta não ‘ funcionou para mim, pois o nmap não ‘ cuspiu o nomes de host para mim. No entanto, isso me inspirou a pesquisar portas ssh abertas com nmap e isso me permitiu encontrar o pi:
sudo nmap -p 22 --open -sV 192.168.0.0/24
por este cara ‘ postagem . - isn ‘ t ” sudo nmap -sP 192.168.1.0/24″ o suficiente (era para mim)?
Resposta
Se você estiver executando MacOS ou Linux, tente este:
$ arp -na | grep -i b8:27:eb
No Windows, você pode use:
arp -a | findstr b8-27-eb
No RPi 4B, você precisa usar string diferente para comparação (dc:a6:32:be:95
). Você pode verifique em seu RPi por
ip -br link
Haverá entradas para cada placa de rede. eth0
é internet a cabo, wlan0
é o WiFi.
Comentários
- Esta solução é muito mais rápida do que uma solução nmap!
- Esta solução funcionou para mim, ao contrário do Solução e nmap que forneceu apenas parte da lista.
- Isso mostrará apenas hosts que entraram em suas tabelas ARP, portanto, às vezes, perde os mais silenciosos. Pode ajudar fazer uma varredura de nmap primeiro.
- Pode ajudar, mas para mim isso nunca falhou. Além disso, ‘ é uma primeira tentativa fácil.
- Obrigado por isso. Modifiquei um pouco e uso
arp -n | awk '/b8:27:eb/ {print $1}'
agora.
Resposta
Eu uso o mDNS / Bonjour para dar ao meu Pi um nome local como pi.local. Não preciso saber seu endereço IP e isso funciona para atalhos e quando você precisa incorporar um link …
Como e por que atribuir um nome local para o seu Pi
Comentários
- Incrível! Eu costumava brincar com
/etc/hosts
localmente para obter esta funcionalidade no meu desktop, esta é uma solução MUITO melhor! Muito obrigado pelo ponteiro!
Resposta
Se desejar usar um aplicativo GUI para isso, você pode usar a ferramenta Yakala
( https://github.com/mozcelikors/yakala ) para Debian / Ubuntu. Esta ferramenta ajuda você não apenas a pesquisar as redes Tipo B e Tipo C disponíveis, mas também ajuda a conectar o SSH diretamente na rede:
sudo add-apt-repository ppa:mozcelikors/yakala sudo apt-get update sudo apt-get install yakala
ou
git clone https://github.com/mozcelikors/yakala cd yakala && sudo ./install.sh
Exoneração de responsabilidade: Eu sou o criador de Yakala. Quaisquer sugestões / bugs são levados muito a sério.
Comentários
- A rede classful foi abandonada em 1993, há muito tempo.
- O que é rede classfull?
Resposta
Por padrão, o nome do raspberry é raspberrypi.Você pode apenas “pingar raspberrypi” e a resposta de eco ICMP fornecerá o endereço IP. Funcionou para mim Certifique-se de que o servidor DHCP está acessível, pois o NIC do raspberry está, por padrão, no modo cliente DHCP. Caso contrário, o raspberry obtém um endereço APIPA.
Resposta
No linux e MAC, você também pode digitar “arp – a” no terminal e pode obter uma lista de dispositivos conectados, procure aquele com B8, exemplo: 192.168.4.5 @ B8 … será o IP do raspberry pi.
Resposta
Eu uso o Fing app em meu smartphone Android. Ele verifica a rede e mostra os dispositivos conectados por tipo, incluindo Raspberry Pi, bem como verifica as portas disponíveis. Útil para ver se SSH, web ou VNC estão ativados e em execução.
Resposta
Ou você pode acessar seu roteador via navegador e encontrar seu dispositivo Android – quase todo roteador GUI tem um serviço onde você pode verificar todos os dispositivos que estão atualmente conectados à sua rede.
Resposta
Se você executa o MacOS, use o PiFinder , é um aplicativo que informa o IP de um Raspberry Pi na sua rede.
Resposta
Copie o seguinte em seu Terminal / 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
Adapte 192.168.1. à sua rede individual.
O a saída terá a seguinte aparência:
(192.168.1.109) B8: 27: EE: DD: CC: A
192.168.1.109 seria o IP do seu Raspberry Pi “s … 🙂
Resposta
Coloque isso em pi.php em seu servidor web:
<?php $fp = fopen("pi", "w"); fwrite($fp, $_REQUEST["ip"],1000); fclose($fp); ?>
Você pode ter que criar o arquivo pi em seu servidor web com permissões de escrita para sua web servidor.
Coloque
curl http://yourwebserver/pi.php -d ip=`hostname -I`
em /etc/rc.local no seu pi.
Obtenha o IP do seu pi navegando na http://yourwebserver/pi
Resposta
Ao usar uma nova instalação do NOOBS ou Raspbian, o nome de host padrão é “raspberrypi” e em algumas redes configurações ork (ou seja, se o mDNS estiver em uso e configurado), você pode usar “raspberrypi.local”. Outra opção é executar arp -a
e procurar raspberrypi
NOTA: Isso não funcionará para todas as instâncias.
Comentários
- Essa resposta parece misturar várias coisas: diferentes versões de IP, DNS e talvez mDNS. Se
.local
pode ser usado, geralmente não ‘ t dependem de IPv6, e também de não ter um roteador presente. Quando o suporte mDNS está disponível, pi-name.local resolve, IPv6 ou não. Alguns roteadores domésticos também usam .local como seu domínio DNS local, novamente, isso é independente do IPv6 e depende do modelo do roteador. Alguns roteadores domésticos usam domínios diferentes, como pi-name.fritz.box.
Resposta
Meu roteador atribui aos sistemas recém-descobertos um endereço ip começando em 192.168.1.2, sequencialmente. Passei por todos os sistemas da minha casa um dia e reservei endereços para eles.
Dessa forma, quando eu criar um novo sistema, as chances são de que seu endereço IP será 192 .169.1.18.
Outra maneira de usar o console serial. Você pode usar um programa de terminal serial para fazer o login no seu raspberry pi. Eu sugeriria usar a configuração 8N1 (8 bits, sem bit de paridade, 1 bit de parada) com uma velocidade (taxa de transmissão) de 115.200. Você precisará de um conector USB para serial (3V3).
Resposta
“Fing” ou “Net Analyzer” no Android . Mostra toda a sua rede.
Resposta
Se você estiver no Windows, sugiro que experimente este script. É principalmente baseado no comando “arp -a”, mas economiza um pouco de escavação extra e ajuda você quando seu Raspberry ainda não está na tabela Arp.
Crie um arquivo de texto com o seguinte conteúdo e renomeie-o como 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
Exoneração de responsabilidade :
- Não sou o autor do script original, apenas o adaptei um pouco para trabalhar com um Raspberry Pi. Infelizmente, não consigo encontrar o colaborador original.
- Não é à prova de balas, não funcionará se a sub-rede que começa a escanear não for a correta.
Mesmo assim, usei muitas vezes e é uma solução simples
Resposta
Em 2020, a resposta aceita não funciona mais porque o Raspberry Pi vem com um intervalo diferente de endereços MAC. Eu poderia apenas adicionar o “novo” MAC como um comentário, mas a string poderia mudar repetidamente a cada modelo. Aqui está algo mais à prova de 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)
A principal diferença acima: não assumimos um padrão MAC, apenas grep pelo (resumo), já que este rótulo é fornecido por nmap
em si. Como nmap
é continuamente atualizado, ele contém tabelas internas de endereços MAC do Raspberry Pi (ou usa outros critérios para detectar) e podemos assumir que continuará funcionando.
CAVEAT: Se sua varredura não identificar todos os Pis que você sabe que estão ativados a rede e, em seguida, repita a varredura – até 10 vezes. Um Pi com rede Power Management:on
pode nem sempre responder a uma varredura.
O gerenciamento de energia pode ser um problema para você se estiver escaneando por múltiplos Pis em uma LAN, já que varreduras repetidas podem detectar um Pi, mas não outro . Nesse caso, repita as varreduras para procurar diferenças . (Para confirmar se um Pi está com o Gerenciamento de energia habilitado, faça ssh para o Pi e execute: /sbin/iwconfig wlan0|grep Management
)
Resposta er
Presumo que você não consiga se conectar ao seu PI, caso contrário, você saberia o seu IP.
Se você for à página do seu roteador (geralmente algo como 192.168.1.1 em seu navegador), você deve ter uma seção com os dispositivos já conectados. Você pode tentar conectar e desconectar o PI (e um dispositivo deve aparecer / desaparecer da lista)
Resposta
Tente isto primeiro:
arp -a | grep -E --ignore-case "b8:27:eb|dc:a6:32"
As duas strings hexadecimais (b8:27:eb|dc:a6:32
) neste comando refletem as duas Valores OUI usados por ” The Foundation ” para a produção de todos os dispositivos RPi – por meio de RPi ver 4B no momento desta escrita. Se o seu RPi não estiver em seu cache arp este comando não produzirá nada útil. Se for esse o caso, crie o seguinte arquivo em seu editor favorito e salve / grave-o como 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"
torne-o executável e execute-o (use seu endereço de rede aqui, não necessariamente 192.168.1. ):
$ chmod 755 pingpong.sh $ ./pingpong.sh 192.168.1.
Seus resultados podem aparecer da seguinte maneira :
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]
Neste caso, o nome do host é cortesia de mDNS. Se você não tiver / não usar mDNS / avahi / etc, o nome do host irá ser substituído pelo caractere: ?
.
Resposta
Raspbian está usando um algo chamado mDNS
, que permite que você acesse seu pi framboesa por um nome de host raspberrypi.local
.
Então, você não “não preciso mais pesquisar um endereço IP, basta conectar assim:
ssh [email protected]