J'utilise Mac OSx pour accéder à mon Pi via SSH. Pour y accéder, je sais que j'ai besoin de l'adresse IP du Pi. J'ai donc décidé d'utiliser quelques commandes Python qui ont toujours réussi à me donner l'adresse IP locale.
import socket
host_name = socket.gethostname()
host_ip = socket.gethostbyname(host_name)
print host_ip
Curieusement, je n'ai obtenu que l'adresse IP de l'hôte local (127.0.1.1).
Quelqu'un peut-il s'il vous plaît me dire comment obtenir le bon IP local / global (selon ce qui est le mieux, cela ne doit fonctionner que sur LAN pour le moment) pour le PI?
ssh
t-il? Vous avez sûrement besoin de l'adresse IP avant vousssh
.Réponses:
Si Python est un must, vous pouvez consulter cet article: http://code.activestate.com/recipes/439094-get-the-ip-address-associated-with-a-network-inter/
Ils soulignent à juste titre qu'un ordinateur a autant d'adresses IP que d'interfaces réseau.
Voici leur code pour obtenir l'adresse IP d'une carte réseau, j'ai testé le code et ça marche:
Si votre RPi est connecté via WiFi, le nom de l'adaptateur doit être
wlan0
Sinon, vous pouvez l'obtenir avec la
ip
commande:Vous devriez obtenir quelque chose comme:
Voilà votre adresse IP.
Bien sûr, rien de tout cela ne fonctionnera si vous démarrez simplement votre RPi et ne pouvez pas vous y connecter car vous ne connaissez pas l'adresse IP! Si c'est le cas, votre serveur DHCP sera sûrement en mesure de vous dire quelle adresse IP il vient de donner au RPi (ou vous les essayez tous :))
Cela dit, vous pourriez bénéficier du référencement de votre RPi par son nom et, puisque vous utilisez un Mac, la meilleure solution serait probablement d'installer avahi-daemon:
qui implémente la spécification Apple Zeroconf (comme Bonjour). Vous pouvez ensuite accéder à votre RPi par nom:
J'ai utilisé une approche différente pour mes deux framboises (nommées ygdrasill et dvalinn ): j'ai opté pour une IP fixe (192.168.0.140 et 192.168.0.142) afin que je puisse également utiliser le fichier etc / hosts sur certaines de mes autres machines.
J'aurais pu configurer un DNS interne ou compter sur Wins, mais la solution actuelle fonctionne pour moi.
la source
ssh [email protected]
donné le nom d'hôte par défaut pour un RPi estraspberrypi
. Pourquoi avahi-daemon n'est pas installé universellement dans le monde Debian me dépasse. Les réseaux ad-hoc sont un rêve lorsqu'il fonctionne dès le départ.Ce code:
ne fonctionne que sous python 2.7, il ne fonctionne pas avec python 3, vous obtiendrez l'erreur que l'argument pour 's' doit être un objet octet ...
la source
python3
?socket peut renvoyer l'hôte local, selon la configuration du système d'exploitation. Ce n'est donc pas portable.
Cette réponse de stackoverflow sur l'obtention d'IP via python est utile - elle explique le problème avec / etc / hosts et donne une solution de contournement décente. Ce n'est pas parfait (ipv6), et si vous avez plusieurs IP liées, il peut ne pas trouver la version routable, mais pour vos besoins c'est un bon oneliner.
Depuis la ligne de commande,
ifconfig
c'est votre ami. Il répertorie généralement toutes vos interfaces liées et autres.la source