[PYTHON] Obtenez l'adresse IPv4 attribuée à l'interface réseau dans le code (Linux)

Cependant, la sortie de la commande ʻifconfig et de la commande ʻip ne doit pas être analysée.

Sous Linux, vous pouvez l'obtenir avec ʻioctl (SIOCGIFADDR) `.

C'est presque le même que le script original (Référence 1 ci-dessous). Avec Python, c'est facile car vous pouvez écrire jusqu'à présent avec la distribution attachée.

import sys, socket, struct
from fcntl import ioctl

SIOCGIFADDR = 0x8915

if len(sys.argv) < 2:
  print >> sys.stderr, "Usage:", sys.argv[0], "<interface name>"
  sys.exit()

interface = sys.argv[1]

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
  ifreq  = struct.pack('16s16x', interface)
  ifaddr = ioctl(s.fileno(), SIOCGIFADDR, ifreq)
finally:
  s.close()

_, sa_family, port, in_addr = struct.unpack('16sHH4s8x', ifaddr)
print socket.inet_ntoa(in_addr)

Référence

Recommended Posts

Obtenez l'adresse IPv4 attribuée à l'interface réseau dans le code (Linux)
Obtenir une adresse à partir d'un code postal
Obtenez l'adresse IP du client avec Django
Désactivez IPv6 sur l'interface réseau dans CentOS Linux 8
Obtenir la liste de codes EDINET en Python
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
Exemple de code pour obtenir oauth_token et oauth_token_secret de l'API Twitter en Python 2.7
Connectez-vous avec json en utilisant pygogo.
Outil pour insérer le nom du pays et le code du pays dans une partie de l'adresse IP
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant
[OCI] Script Python pour obtenir l'adresse IP d'une instance de calcul dans Cloud Shell
Une ligne pour obtenir le nième hachage de commit dans Git
Code de test pour vérifier les liens brisés dans la page
J'ai essayé de résumer le code souvent utilisé dans Pandas
Comment obtenir le pointeur d'instruction (= compteur de programme) dans le noyau Linux
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir toutes les clés et valeurs du dictionnaire
[Shell] Comment obtenir la branche distante par défaut avec Git
Comment implémenter du code Java en arrière-plan de Red Hat (Linux ONE)
Acquérir automatiquement le journal des opérations dans le terminal lors de la connexion à Linux
[Linux] Je souhaite connaître la date à laquelle l'utilisateur s'est connecté
Comment obtenir toutes les valeurs possibles dans une expression régulière
Comment obtenir le pilote d'imprimante pour Oki Mac sous Linux
J'ai écrit le code pour écrire le code Brainf * ck en python
Accédez à l'API New Relic en Python pour obtenir l'état du serveur
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
Créez une fonction pour obtenir le contenu de la base de données dans Go
Programmation pour combattre dans le monde ~ 5-1
Programmation pour combattre dans le monde ~ 5-5,5-6
Obtenez le chemin du bureau en Python
Obtenez le chemin du script en Python
Dans la commande python, python pointe vers python3.8
Comment obtenir la version Python
[linux] commande kill pour tuer le processus
Road to Intermediate Linux: Network Edition
Obtenez le chemin du bureau en Python
Essayez Cython dans les plus brefs délais
Commandes Linux liées au code de caractère
Comment exécuter du code TensorFlow 1.0 en 2.0
Programmation pour combattre dans le monde ~ 5-2
Récupérer la chaîne de requête (chaîne de requête) avec Django
Comment obtenir la différence de date et d'heure en secondes avec Python
Cliquez sur les liens Selenium afin d'obtenir les éléments des pages individuelles
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Un script qui enregistre l'adresse IP utilisée par wercker dans le groupe de sécurité
Utilisez un raccourci pour activer ou désactiver le pavé tactile dans Linux Mint