Jika Python adalah suatu keharusan, Anda dapat memeriksa artikel ini:
http://code.activestate.com/recipes/439094-get-the-ip-address-associated-with-a-network-inter/
Mereka dengan tepat menunjukkan bahwa komputer memiliki alamat IP sebanyak antarmuka jaringan.
Berikut ini adalah kode mereka untuk mendapatkan alamat IP dari adaptor jaringan, saya telah menguji kodenya dan berfungsi:
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')
Jika RPi Anda terhubung melalui WiFi, nama adaptor seharusnya wlan0
Kalau tidak, Anda bisa mendapatkannya dengan ip
perintah:
ip addr show eth0 | grep inet
Anda harus mendapatkan sesuatu seperti:
inet 192.168.0.140/24 brd ....
Itu alamat IP Anda.
Tentu saja semua ini tidak akan berfungsi jika Anda hanya mem-boot RPi Anda dan tidak dapat terhubung karena Anda tidak tahu alamat IP! Jika demikian, server DHCP Anda pasti akan dapat memberi tahu Anda alamat IP yang ia berikan kepada RPi (atau Anda hanya mencoba semuanya :))
Yang mengatakan, Anda mungkin mendapat manfaat dari merujuk Anda RPi dengan nama dan, karena Anda menggunakan Mac, mungkin solusi terbaik adalah menginstal avahi-daemon:
sudo apt-get install avahi-daemon
yang mengimplementasikan spesifikasi Apple Zeroconf (seperti Bonjour). Anda kemudian dapat ssh ke RPi Anda dengan nama:
ssh pi@raspberry.local
Saya menggunakan pendekatan yang berbeda untuk dua Raspberry saya (bernama ygdrasill dan dvalinn ): Saya telah memilih IP tetap (192.168.0.140 dan 192.168.0.142) sehingga saya juga dapat menggunakan file etc / hosts di beberapa komputer saya yang lain.
Saya bisa mengatur DNS internal atau mengandalkan Win, tetapi solusi saat ini bekerja untuk saya.