Als ich den Artikel [Sound mit Docker abspielen](// abrakatabura.hatenablog.com/entry/2014/08/21/062305) schrieb, wie man die lokale IP-Adresse des Hosts erhält, der den Docker-Befehl ausführt Ich war neugierig und fand heraus, wie man in einigen der Sprachen schreibt, die ich heutzutage benutze. Ich habe auch OCaml überprüft, aber aufgegeben, weil ich nicht genug Google- und Englischkenntnisse hatte. .. ..
Ruby
2.1 oder höher
ruby -r socket -e 'puts Socket.getifaddrs.select{|x| x.name == "eth0" and x.addr.ipv4?}.first.addr.ip_address'
Link
Python
Die Methode zur Verwendung von gethostname wurde sofort veröffentlicht, aber unter Ubuntu usw. scheint es durchaus möglich zu sein, 127.0.0.1 zu erhalten, also habe ich nach einer anderen Methode gesucht.
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
Das Standardmodul funktionierte gut und unter Windows.
node -e "require('os').networkInterfaces()['eth0'].filter(function(elm){if(elm.family=='IPv4')console.log(elm.address)})"
node -e "require('os').networkInterfaces()['LAN-Verbindung'].filter(function(elm){if(elm.family=='IPv4') console.log(elm.address)})"
Link
hostname -I
Der OSX-Befehl hostname hat nicht funktioniert.
AppleScript
osascript -e "IPv4 address of (get system info)"
Link
Überraschenderweise stellte sich heraus, dass es schwierig war, eine lokale IP-Adresse zu erhalten. Installieren Sie für viele Sprachen Module usw. separat Das Schreiben war intelligent und plattformabhängig.
Leider gibt es keinen hier aufgeführten Schreibstil, der in jeder Umgebung in Ordnung ist. Daher ist bei Bedarf eine Feineinstellung erforderlich.
Recommended Posts