2016-09-19 1 views
1

Я работаю над небольшим проектом с малиной Pi, и мне нужно отобразить IP-адрес PI на ЖК-экране.Матричный ЖК-дисплей формата 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

Ниже приведен пример, чтобы получить адрес IP-в интерпретатор Python.

>>>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'