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
hostname -I
La commande OSX hostname n'a pas fonctionné.
AppleScript
osascript -e "IPv4 address of (get system info)"
Link
É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.
Recommended Posts