[PYTHON] Programmgesteuert eine lokale IP-Adresse abrufen

Einführung

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

Schale

hostname -I

Der OSX-Befehl hostname hat nicht funktioniert.

AppleScript

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

Link

Zusammenfassung

Ü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.

In Verbindung stehender Artikel

Recommended Posts

Programmgesteuert eine lokale IP-Adresse abrufen
Holen Sie sich die lokale IP-Adresse
Konvertieren Sie die IP-Adresse in eine Dezimalzahl
Holen Sie sich eine globale IP und exportieren Sie sie in Google Spreadsheets
[OCI] Python-Skript zum Abrufen der IP-Adresse einer Recheninstanz in Cloud Shell
Holen Sie sich die IP-Adresse des Kunden mit Django
Wie bekomme ich IP bei Tornado + Nginx
Holen Sie sich mit Docker eine lokale Umgebung für DynamoDB
Wie bekomme ich Stacktrace in Python?
Übersetzen Sie den IP-Adressbereich 1: 1 in ein anderes Subnetz
Holen Sie sich Ihre eigene IP-Adresse in Python
Hinweis zum Zeichnen der IP-Adresse mit Kibana + Elastic Search
Firewalld zu Amazon Linux 2 hinzugefügt (IP-Adressbeschränkungen)
So richten Sie einen lokalen Entwicklungsserver ein
Ich habe ein Tool erstellt, um neue Artikel zu erhalten
Erstellen Sie einen Befehl, um das Arbeitsprotokoll abzurufen
Zubu Amateur will Python starten
Tool zum Einfügen des Ländernamens und des Ländercodes in einen Teil der IP-Adresse
So erhalten Sie einen angemeldeten Benutzer mit Djangos forms.py
So erstellen Sie ein lokales Repository für Linux
Zertifikatüberprüfung fehlgeschlagen: Lokales Ausstellerzertifikat kann nicht abgerufen werden (_ssl.c: 1108) ')]
[Linux] Wie Sie Ihre IP in eine Variable einfügen
Ich möchte eine lokale Variable mit Lambda binden
[Linux] [C / C ++] So ermitteln Sie den Wert der Rücksprungadresse einer Funktion und den Funktionsnamen des Aufrufers
Erstellen Sie eine IP-Adresszuweisung / Zuweisungsliste für einen bestimmten Bereich
[Python] Ich möchte einen gemeinsamen Satz zwischen numpy erhalten
[Befehl] Befehl zum Abrufen einer Liste von Dateien mit Zeichen voller Breite
Entwickelte eine Bibliothek, um die Kindle-Sammlungsliste in Python abzurufen
Ich habe versucht "Wie man eine Methode in Python dekoriert"
Ich habe versucht, mit Hy ・ Define a class zu beginnen
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
Ich habe ein Skript geschrieben, um eine beliebte Seite in Japan zu bekommen
Weisen Sie Linux eine lokale Linkadresse zu und verwenden Sie DNS-SD / SSDP
So erhalten Sie eine Liste mit Links von einer Seite aus Wikipedia