[PYTHON] Pour obtenir une adresse IP locale par programme

introduction

Quand j'ai écrit l'article [Play a sound with Docker](// abrakatabura.hatenablog.com/entry/2014/08/21/062305), comment obtenir l'adresse IP locale de l'hôte exécutant la commande Docker J'étais curieux et j'ai découvert comment écrire dans certaines des langues que j'utilise ces jours-ci. J'ai également vérifié OCaml, mais j'ai abandonné parce que je n'avais pas assez de google et d'anglais. .. ..

Ruby

2.1 ou version ultérieure

ruby -r socket -e 'puts Socket.getifaddrs.select{|x| x.name == "eth0" and x.addr.ipv4?}.first.addr.ip_address'

Link

Python

La méthode d'utilisation de gethostname est sortie immédiatement, mais sur Ubuntu etc., il semble qu'il soit tout à fait possible d'obtenir 127.0.0.1, alors j'ai cherché une autre méthode.

python -c "import socket;print([(s.connect(('8.8.8.8', 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])"
pip install netifaces
python -c "import netifaces;print(netifaces.ifaddresses('eth0')[netifaces.AF_INET][0]['addr'])"

Link

Perl

cpanm install IO::Interface
perl -MIO::Interface::Simple -e 'CORE::say IO::Interface::Simple->new(shift || "eth0")->address'

Link

Node.js

Le module standard fonctionnait bien et fonctionnait sous Windows.

node -e  "require('os').networkInterfaces()['eth0'].filter(function(elm){if(elm.family=='IPv4')console.log(elm.address)})"
node -e "require('os').networkInterfaces()['Connexion au réseau local'].filter(function(elm){if(elm.family=='IPv4') console.log(elm.address)})"

Link

coquille

hostname -I

La commande OSX hostname n'a pas fonctionné.

AppleScript

osascript -e "IPv4 address of (get system info)"

Link

Résumé

Étonnamment, il s'est avéré difficile d'obtenir une adresse IP locale. Pour de nombreuses langues, installez les modules, etc. séparément Écrire avec lui était intelligent et dépendait de la plateforme.

Malheureusement, il n'y a rien de tel que OK dans aucun environnement avec les styles d'écriture listés ici, donc un ajustement fin est nécessaire si nécessaire.

Article associé

Recommended Posts

Pour obtenir une adresse IP locale par programme
Obtenir l'adresse IP locale
Convertir l'adresse IP en décimal
Obtenez une adresse IP globale et exportez-la vers des feuilles de calcul Google
[OCI] Script Python pour obtenir l'adresse IP d'une instance de calcul dans Cloud Shell
Obtenez l'adresse IP du client avec Django
Comment obtenir une adresse IP lorsque Tornado + nginx
Obtenez un environnement local pour DynamoDB avec Docker
Comment obtenir stacktrace en python
Traduire la plage d'adresses IP en un autre sous-réseau 1: 1
Obtenez votre propre adresse IP en Python
Remarque pour tracer l'adresse IP avec Kibana + Elastic Search
Firewalld ajouté à Amazon Linux 2 (restrictions d'adresse IP)
Comment configurer un serveur de développement local
J'ai créé un outil pour obtenir de nouveaux articles
Créez une commande pour obtenir le journal de travail
Zubu amateur veut démarrer Python
Outil pour insérer le nom du pays et le code du pays dans une partie de l'adresse IP
Comment obtenir un utilisateur connecté avec les forms.py de Django
Comment créer un référentiel local pour le système d'exploitation Linux
échec de la vérification du certificat: impossible d'obtenir le certificat de l'émetteur local (_ssl.c: 1108) ')]
[Linux] Comment mettre votre IP dans une variable
Je veux lier une variable locale avec lambda
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant
Faire une liste d'allocation / allocation d'adresses IP pour une certaine zone
[Python] Je souhaite obtenir un ensemble commun entre numpy
[Commande] Commande pour obtenir une liste de fichiers contenant des caractères pleine largeur
Développer une bibliothèque pour obtenir la liste des collections Kindle en Python
J'ai essayé "Comment obtenir une méthode décorée en Python"
J'ai essayé de commencer avec Hy ・ Définir une classe
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir une liste d'exceptions intégrées pour python
J'ai écrit un script pour obtenir un site populaire au Japon
Attribuez une adresse locale de lien à Linux et utilisez DNS-SD / SSDP
Comment obtenir une liste de liens à partir d'une page de wikipedia