Python bir zorunluluksa, bu makaleyi kontrol edebilirsiniz:
http://code.activestate.com/recipes/439094-get-the-ip-address-associated-with-a-network-inter/
Haklı olarak, bir bilgisayarın ağ arabirimleri kadar IP adresine sahip olduğunu belirtiyorlar.
İşte bir ağ bağdaştırıcısının IP adresini almak için kodlarını, kodu test ettik ve çalışıyor:
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'niz WiFi üzerinden bağlıysa, adaptör adı wlan0
Aksi takdirde şu ip
komutla alabilirsiniz:
ip addr show eth0 | grep inet
Gibi bir şey almalısınız:
inet 192.168.0.140/24 brd ....
Bu sizin IP adresiniz.
Tabii ki RPi'nizi önyüklerseniz ve IP adresini bilmediğiniz için bağlanamazsanız bunların hiçbiri işe yaramaz! Eğer 'DHCP sunucunuz RPi'ye hangi IP adresini verdiğini söyleyecektir (ya da hepsini deneyin :))
Bununla birlikte, RPi'yi adıyla göndermekten fayda sağlayabilirsiniz ve Mac kullandığınızdan, muhtemelen en iyi çözüm avahi-daemon'u yüklemek olacaktır:
sudo apt-get install avahi-daemon
Apple Zeroconf belirtimini uygular (Bonjour gibi). Daha sonra RPi'nize adıyla ssh yapabilirsiniz:
ssh pi@raspberry.local
İki Raspberrys ( ygdrasill ve dvalinn adlı) için farklı bir yaklaşım kullandım : Sabit bir IP (192.168.0.140 ve 192.168.0.142) seçtim, böylece diğer makinelerimin bazılarında etc / hosts dosyasını da kullanabilirim.
Dahili bir DNS kurabilir veya Wins'e güvenebilirdim, ancak mevcut çözüm benim için çalışıyor.