Raspberry를 모니터에 연결하지 않고 로컬 네트워크에서 Raspberry PI IP 주소를 찾아야합니다. Linux 또는 Mac OS 시스템에서 어떻게해야합니까?
설명
- 가능한 IP 주소를 몰라도 SSH로 raspberry pi
- 스마트 폰의 Lan 스캔 앱은 네트워크의 모든 장치를 표시합니다.
Answer
B8 : 27 : EB 로 시작하는 모든 라즈베리 기기 MAC 주소 (RPi4 B의 경우 dc:a6:32
, 적절한 경우 교체).
따라서 * nix 시스템에서는이 작업을 수행 할 수 있습니다. 다음 명령을 실행합니다.
nmap -sP 192.168.1.0/24 | awk "/^Nmap/{ip=$NF}/B8:27:EB/{print ip}"
여기서 192.168.1.*
는 로컬 네트워크 마스크입니다. 다음과 같은 답변이 표시됩니다.
Nmap scan report for raspberrypi.localnetwork.lan (192.168.1.179)
192.168.1.179는 네트워크의 Raspberry Pi IP 주소입니다.
Mac 시스템에서는 Homebrew 를 사용하여 설치할 수 있습니다. nmap :
brew install nmap
Windows , Wireshark 를 사용하고 다음 디스플레이 필터를 사용할 수 있습니다.
eth.addr[0:3] == B8:27:EB
댓글
- 또는 더 적은 파이프 사용 :
nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
- @ripat에게 감사합니다. 간결-업데이트되었습니다! 한 가지 작은 세부 사항은 관리자 권한으로 실행해야한다는 것입니다. 그렇지 않으면 nmap이 MAC 주소를 표시하지 않습니다.
- 당신은 사무실 환경에서 라즈베리 파이를 머리없이 찾으려고 할 때까지이 답변의 중요성을 인식하지 못할 것입니다. IP ‘는 DHCP를 사용하여 표시됩니다. 이 @ripat에 대한 건배
- nmap이 ‘ 내가 뱉어 내지 않았기 때문에이 답변은 ‘ 나에게 효과적이지 않았습니다. 나를위한 호스트 이름. 그러나 nmap을 사용하여 열린 ssh 포트를 검색하도록 영감을 받았고 파이를 찾을 수있었습니다.
sudo nmap -p 22 --open -sV 192.168.0.0/24
per this guy ‘의 게시물 . - isn ‘ t ” sudo nmap -sP 192.168.1.0/24″ 충분합니까?
답변
MacOS 또는 Linux를 실행중인 경우 다음을 시도해보세요.
$ arp -na | grep -i b8:27:eb
Windows에서는 다음을 수행 할 수 있습니다. 사용 :
arp -a | findstr b8-27-eb
RPi 4B에서는 비교를 위해 다른 문자열을 사용해야합니다 (dc:a6:32:be:95
). RPi에서 확인하십시오.
ip -br link
각 네트워크 카드에 대한 항목이 있습니다. eth0
는 케이블 인터넷입니다. wlan0
는 WiFi입니다.
댓글
- 이 솔루션은 nmap 솔루션보다 훨씬 빠릅니다!
- 이 솔루션은 e nmap 솔루션은 목록의 일부만 제공합니다.
- 이는 arp 테이블에 포함 된 호스트 만 표시하므로 조용한 테이블을 놓치는 경우도 있습니다. nmap 스캔을 먼저 한 번하면 도움이 될 수 있습니다.
- 그럴 수도 있지만 저에게는 결코 실패하지 않았습니다. 또한 ‘ 쉬운 첫 번째 시도입니다.
- 감사합니다. 약간 수정하여 지금
arp -n | awk '/b8:27:eb/ {print $1}'
를 사용합니다.
Answer
mDNS / Bonjour를 사용하여 Pi에 pi.local과 같은 로컬 이름을 지정합니다. IP 주소를 알 필요가 없으며 바로 가기 및 링크를 삽입해야 할 때 작동합니다 …
댓글
- 굉장합니다!
/etc/hosts
로컬에서이 기능을 내 데스크톱에 가져 오면 훨씬 더 나은 솔루션입니다! 포인터 주셔서 감사합니다!
답변
GUI 애플리케이션을 사용하려는 경우 Yakala
도구 ( https://github.com/mozcelikors/yakala ) (Debian / Ubuntu 용).이 도구는 사용 가능한 유형 B 및 유형 C 네트워크를 검색하는 데 도움이 될뿐만 아니라 네트워크에 직접 SSH를 통해 연결할 수 있도록 도와줍니다.
sudo add-apt-repository ppa:mozcelikors/yakala sudo apt-get update sudo apt-get install yakala
또는
git clone https://github.com/mozcelikors/yakala cd yakala && sudo ./install.sh
면책 조항 : 저는 Yakala의 제작자입니다. 모든 제안 / 버그는 매우 진지하게 받아들입니다.
댓글
- 고급 네트워킹은 아주 오래 전인 1993 년에 중단되었습니다.
- classfull 네트워킹이란 무엇입니까?
Answer
기본적으로 raspberry의 이름은 raspberrypi입니다.”ping raspberrypi”만하면 ICMP 에코 응답이 IP 주소를 제공합니다. 그것은 나를 위해 일했습니다. raspberry의 NIC가 기본적으로 DHCP 클라이언트 모드이므로 DHCP 서버에 연결할 수 있는지 확인합니다. 그렇지 않으면 raspberry가 APIPA 주소를 얻습니다.
Answer
Linux 및 MAC에서는 터미널에 “arp-a”를 입력 할 수도 있으며 연결된 장치 목록을 가져올 수 있습니다. B8이있는 장치를 찾을 수 있습니다. 예 : 192.168.4.5 @ B8 … 라즈베리 파이 IP가됩니다.
답변
무료 Fing 앱입니다. 네트워크를 스캔하고 Raspberry Pi를 포함한 유형별 연결된 장치를 표시하고 사용 가능한 포트를 스캔합니다. SSH, 웹 또는 VNC가 활성화되어 있는지 확인하고
답변
또는 브라우저를 통해 라우터에 액세스하여 Android 기기를 찾을 수 있습니다. 거의 모든 라우터 GUI에는 현재 네트워크에 연결된 모든 장치를 확인할 수있는 서비스입니다.
답변
MacOS를 실행하는 경우 PiFinder 를 사용하면 네트워크에있는 Raspberry Pi의 IP를 알려주는 애플리케이션입니다.
답변
다음을 터미널 / 콘솔 / 셸에 복사합니다.
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
192.168.1. 를 개별 네트워크에 맞게 조정하세요.
출력은 다음과 같습니다.
(192.168.1.109) B8 : 27 : EE : DD : CC : A
192.168.1.109가 Raspberry Pi의 IP가됩니다… 🙂
답변
웹 서버의 pi.php에 넣으십시오.
<?php $fp = fopen("pi", "w"); fwrite($fp, $_REQUEST["ip"],1000); fclose($fp); ?>
웹에 대한 쓰기 권한이있는 웹 서버에 pi 파일을 만들어야 할 수도 있습니다. 서버.
curl http://yourwebserver/pi.php -d ip=`hostname -I`
파이의 /etc/rc.local에 입력합니다.
IP 가져 오기 http://yourwebserver/pi
답변
NOOBS 또는 Raspbian을 새로 설치하는 경우 기본 호스트 이름은 “raspberrypi”이며 일부 네트워크에서는 ork 구성 (예 : mDNS가 사용 중이고 구성된 경우) “raspberrypi.local”을 사용할 수 있습니다. 또 다른 옵션은 arp -a
를 실행하고 raspberrypi를 찾는 것입니다.
참고 : 모든 인스턴스에서 작동하지는 않습니다.
댓글
- 이 대답은 여러 가지 IP 버전, DNS 및 mDNS를 혼합 한 것 같습니다.
.local
를 사용할 수 있는지 여부는 일반적으로 그렇지 않습니다. ‘ IPv6에 의존하지 않고 라우터가 없어도됩니다. mDNS 지원을 사용할 수있는 경우 pi-name.local이 IPv6 여부를 확인합니다. 일부 홈 라우터도 .local을 다음과 같이 사용합니다. 로컬 DNS 도메인은 IPv6와 독립적이며 라우터 모델에 따라 다릅니다. 일부 홈 라우터는 pi-name.fritz.box와 같은 다른 도메인을 사용합니다.
답변
라우터는 새로 발견 된 시스템에 192.168.1.2에서 시작하는 IP 주소를 순차적으로 할당합니다. 어느 날 집에있는 모든 시스템을 살펴보고 주소를 예약했습니다.
그렇게하면 새 시스템을 만들 때 IP 주소가 192가 될 가능성이 있습니다. .169.1.18.
직렬 콘솔을 사용하는 또 다른 방법입니다. 라즈베리 파이에 로그인하기 위해 직렬 터미널 프로그램을 사용할 수 있습니다. 115,200의 속도 (baud rate)로 8N1 (8 비트, 패리티 비트 없음, 1 스톱 비트) 설정을 사용하는 것이 좋습니다. USB- 직렬 (3V3) 커넥터가 필요합니다.
Answer
Android의 “Fing”또는 “Net Analyzer” . 전체 네트워크를 보여줍니다.
답변
Windows를 사용하는 경우이 스크립트를 사용해 보는 것이 좋습니다. “arp -a”명령을 기반으로하지만 약간의 추가 작업을 줄이고 Raspberry가 Arp 테이블에 아직 없을 때 도움이됩니다.
다음 내용으로 텍스트 파일을 만들고 이름을 다음과 같이 변경합니다. 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
면책 조항 :
- 저는 원본 스크립트의 작성자가 아니며 Raspberry Pi와 함께 작동하도록 약간 수정했습니다. 안타깝게도 원본 기여자를 찾을 수 없습니다.
- 방탄이 아닙니다. 스캔을 시작하는 서브넷이 올바르지 않으면 작동하지 않습니다.
그래도 여러 번 사용했습니다. “간단한 솔루션입니다.
답변
2020 년에는 Raspberry Pi가 다른 범위의 MAC 주소와 함께 제공되기 때문에 허용 된 답변이 더 이상 작동하지 않습니다. “새”MAC을 주석으로 추가 할 수 있지만 문자열은 각 모델마다 계속해서 변경 될 수 있습니다. 여기에 “미래 보장”이 있습니다.
$ 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)
위의 주요 차이점 : MAC 패턴을 가정하지 않고 (요약)을 grep합니다.이 레이블은
자체입니다. nmap
는 지속적으로 업데이트되기 때문에 Raspberry Pi MAC 주소의 내부 테이블을 포함하거나 다른 기준을 사용하여 감지합니다. 계속 작동합니다.
CAVEAT : 스캔이 알고있는 모든 Pi를 식별하지 못하는 경우 네트워크에 연결 한 다음 최대 10 번까지 스캔을 반복합니다. 네트워킹 Power Management:on
이있는 Pi는 항상 스캔에 응답하지 않을 수 있습니다.
전원 관리는 LAN에서 여러 Pi를 스캔하는 경우 문제가됩니다. 반복 스캔은 하나 Pi를 감지하지만 다른 은 감지하지 못할 수 있습니다.이 경우 스캔을 반복하여 차이점을 찾습니다. . (Pi에 전원 관리가 활성화되어 있는지 확인하려면 Pi에 ssh하고 다음을 실행하십시오. /sbin/iwconfig wlan0|grep Management
)
Answ er
PI에 연결할 수 없다고 가정합니다. 그렇지 않으면 해당 IP를 알고있을 것입니다.
라우터 페이지로 이동하면 (일반적으로 브라우저의 192.168.1.1과 같이) 이미 연결된 장치가있는 섹션이 있어야합니다. PI를 연결 및 연결 해제 할 수 있습니다 (그리고 하나의 장치가 목록에 나타나거나 사라집니다)
답변
시도 먼저 :
arp -a | grep -E --ignore-case "b8:27:eb|dc:a6:32"
이 명령의 두 16 진수 문자열 (b8:27:eb|dc:a6:32
)은 두 개의 OUI 값은 ” The Foundation “에서 RPi를 통해 모든 RPi 기기 생산에 사용됩니다. 이 글을 쓰는 시점에서 ver 4B. RPi가 arp 캐시 이 명령은 유용한 정보를 제공하지 않습니다. 이 경우 선호하는 편집기에서 다음 파일을 만들고 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"
실행 가능하게 만들고 실행합니다 (iv id = “가 아닌 네트워크 주소 사용). f9a24eba1a “>
192.168.1. ) :
$ chmod 755 pingpong.sh $ ./pingpong.sh 192.168.1.
결과는 다음과 같이 나타날 수 있습니다. :
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]
이 경우 호스트 이름은 mDNS에 따라 표시됩니다. mDNS / avahi / etc를 사용하지 않거나 사용하지 않는 경우 호스트 이름은 다음 문자로 대체됩니다. ?
.
Answer
Raspbian은 호스트 이름 raspberrypi.local
로 라즈베리 파이에 액세스 할 수있는 mDNS
라는 것입니다.
그러므로 “더 이상 IP 주소를 검색 할 필요가 없습니다. 다음과 같이 연결하십시오.
ssh [email protected]