2016-09-19 72 views
1

我正在研究一個帶有Raspberry Pi的小項目,我需要在LCD屏幕上顯示PI的IP地址。Raspberry LCD IP顯示格式

我跟着這個教程: https://learn.adafruit.com/drive-a-16x2-lcd-directly-with-a-raspberry-pi/python-code

這似乎很好地工作,但是有顯示IP的問題。它不顯示「192.168.0.68」,而是顯示「fe80 :: 779b:a7a1:9282:f4d5」。它顯示的時間很好(「Sep 19 18:20:41」)。

作爲新的節目,我找不到這個問題,所以我在這裏尋求幫助提前

謝謝!

+1

這是你的IPv6地址,所以...沒問題? –

+0

具體來說,我正在尋找一種方法來轉換顯示格式,在一個可以用於SSH的Pi? – NyuengBo

+0

這是一個有效的IPv6地址。除非你的ssh太老了,它不瞭解ipv6,那是你可以用於ssh的地址。 –

回答

0

我發現netifaces包對於獲取IP地址很有用。下面的鏈接很好地解釋了有關其基本用法

https://pypi.python.org/pypi/netifaces

下面是一個例子,以獲得在Python解釋器的IP地址。

>>>import netifaces 
>>>addr = netifaces.ifaddresses('en1') 
>>>addr 
{18: [{'addr': 'e4:ce:8f:30:98:0c'}], 2: [{'broadcast': '192.168.1.255', 'addr': '192.168.1.22', 'netmask': '255.255.255.0'}], 30: [{'addr': 'fe80::e6ce:8fff:fe30:980c%en1', 'netmask': 'ffff:ffff:ffff:ffff::'}]} 
>>>addr[netifaces.AF_INET][0]['addr'] 
'192.168.1.22' 

注:我使用'en1',因爲我在Mac上。在Pi通常這將是'eth0'