Good to Know Database

IP-Adressen mit Python auslesen


Der folgende Quellcode soll Ihnen zeigen, wie Sie die IP-Adresse einer Netzwerkschnittstelle auf einem Linux System in Python ermitteln können. Die hier definierte Funktion get_ip() wird dazu mit dem Namen der Netzwerkschnittstelle (z.B. eth0 oder lo) aufgerufen. Innerhalb der Funktion get_ip() wird anschließend die IP-Adresse ermittelt und als Rückgabewert zurückgegeben.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#
# Creation:    25.05.2015
# Last Update: 28.08.2016
#
# Copyright (c) 2015-2016 by Georg Kainzbauer <http://www.gtkdb.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#

# import required modules
import socket
import fcntl
import struct

# function to get ip address of given interface
def get_ip(interface):
  ip_addr = "Not connected"
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  try:
    ip_addr = socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', interface[:15]))[20:24])
  finally:
    return ip_addr

# main function
def main():
  print "lo: %s" % get_ip("lo")
  print "eth0: %s" % get_ip("eth0")
  print "wlan0: %s" % get_ip("wlan0")

if __name__ == '__main__':
  main()


Dieser Eintrag wurde am 17.06.2015 erstellt und zuletzt am 28.08.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_31_2701.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer