Python이 필수 인 경우이 기사를 확인할 수 있습니다.
http://code.activestate.com/recipes/439094-get-the-ip-address-related-with-a-network-inter/
그들은 컴퓨터가 네트워크 인터페이스만큼 많은 IP 주소를 가지고 있다고 지적합니다.
다음은 네트워크 어댑터의 IP 주소를 가져 오는 코드입니다. 코드를 테스트했으며 작동합니다.
import socket
import fcntl
import struct
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
print get_ip_address('lo')
print get_ip_address('eth0')
RPi가 WiFi를 통해 연결된 경우 어댑터 이름은 wlan0
그렇지 않으면 다음 ip
명령으로 얻을 수 있습니다 .
ip addr show eth0 | grep inet
다음과 같은 것을 얻어야합니다.
inet 192.168.0.140/24 brd ....
그것이 당신의 IP 주소입니다.
물론 RPi를 부팅하고 IP 주소를 모르기 때문에 RPi를 연결할 수 없으면이 중 어느 것도 작동하지 않습니다! 그렇다면 DHCP 서버가 방금 RPi에 어떤 IP 주소를 주 었는지 말할 수 있습니다 (또는 모두 시도하십시오 :))
즉, 이름으로 RPi를 참조하면 이점이 있으며 Mac을 사용하기 때문에 아마도 가장 좋은 해결책은 avahi-daemon을 설치하는 것입니다.
sudo apt-get install avahi-daemon
Bonjour와 같은 Apple Zeroconf 사양을 구현합니다. 그런 다음 이름으로 RPi에 ssh 할 수 있습니다.
ssh pi@raspberry.local
나는 두 개의 라즈베리 ( ygdrasill 및 dvalinn )에 대해 다른 접근 방식을 사용했습니다 . 고정 IP (192.168.0.140 및 192.168.0.142)를 선택 했으므로 다른 컴퓨터 중 일부에서 etc / hosts 파일을 사용할 수도 있습니다.
내부 DNS를 설정하거나 Wins를 사용할 수 있었지만 현재 솔루션이 적합합니다.