यदि पायथन एक है, तो आप इस लेख को देख सकते हैं:
http://code.activestate.com/recipes/439094-get-the-ip-address-associated-with-a-network-inter/
वे ठीक से इंगित करते हैं कि कंप्यूटर में नेटवर्क इंटरफेस के रूप में कई आईपी पते हैं।
यहाँ एक नेटवर्क एडेप्टर का आईपी पता प्राप्त करने के लिए उनका कोड है, मैंने कोड का परीक्षण किया है और यह काम करता है:
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')
यदि आपका आरपीआई वाईफाई के माध्यम से जुड़ा है तो एडेप्टर नाम होना चाहिए wlan0
अन्यथा आप इसे ip
कमांड से प्राप्त कर सकते हैं :
ip addr show eth0 | grep inet
आपको कुछ मिलना चाहिए:
inet 192.168.0.140/24 brd ....
वह आपका IP पता है।
यदि आप सिर्फ अपने आरपीआई को बूट करते हैं तो निश्चित रूप से इसमें से कोई भी काम नहीं करेगा, क्योंकि आप आईपी पते को नहीं जानते हैं! यदि 'ऐसा मामला है तो आपका डीएचसीपी सर्वर निश्चित रूप से आपको बता सकेगा कि उसने किस आईपी पते को आरपीआई को दिया था (या आप बस उन सभी को आज़माएँ :))
उसने कहा, आप आरपीआई को नाम से संदर्भित करने का लाभ उठा सकते हैं और, चूंकि आप मैक का उपयोग कर रहे हैं, शायद सबसे अच्छा समाधान अवधी-डेमॉन स्थापित करना होगा:
sudo apt-get install avahi-daemon
जो Apple Zeroconf विनिर्देशन (जैसे बोनजॉर) को लागू करता है। फिर आप अपने आरपीआई को नाम से बता सकते हैं:
ssh pi@raspberry.local
मैंने अपने दो रास्पबेरी ( ygdrasill और dvalinn नाम ) के लिए एक अलग दृष्टिकोण का उपयोग किया : मैंने एक निश्चित आईपी (192.168.0.140 और 192.168.0.142) का विकल्प चुना है, इसलिए मैं अपनी कुछ अन्य मशीनों पर आदि / होस्ट फ़ाइल का भी उपयोग कर सकता हूं।
मैं एक आंतरिक डीएनएस सेट कर सकता था या जीत पर भरोसा कर सकता था, लेकिन वर्तमान समाधान मेरे लिए काम करता है।