2016-09-19 2 views
1

Je travaille sur un petit projet avec un Raspberry Pi, et j'ai besoin d'afficher l'adresse IP du PI sur un écran LCD.Format d'affichage IP LCD Framboise

J'ai suivi ce tutoriel: https://learn.adafruit.com/drive-a-16x2-lcd-directly-with-a-raspberry-pi/python-code

Il semble fonctionner très bien, mais il y a un problème d'affichage de la propriété intellectuelle. Au lieu d'afficher "192.168.0.68", il affiche "fe80 :: 779b: a7a1: 9282: f4d5". Il montre l'heure juste très bien ("Sep 19 18:20:41").

Être nouveau à la programmation, je ne pouvais pas trouver le problème, alors voici, je demande de l'aide

Merci à l'avance!

+1

c'est votre adresse IPv6, donc ... pas de problème? –

+0

Plus précisément, je cherche un moyen de convertir le format d'affichage, dans un qui peut être utilisé pour SSH au Pi? – NyuengBo

+0

qui est une adresse IPv6 valide. à moins que votre ssh ne soit si vieux, il ne comprend pas ipv6, c'est une adresse que vous pouvez utiliser pour ssh. –

Répondre

0

J'ai trouvé le paquet netifaces utile pour obtenir l'adresse IP. Le lien ci-dessous explique bien sur son utilisation de base

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

Voici un exemple pour obtenir l'adresse IP dans l'interpréteur 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' 

Note: J'utilise 'en1' parce que je suis sur un Mac. Dans le Pi en général, ce serait 'eth0'