Skip to main content

Cross-platform network interface and IP address enumeration library

Project description

ifaddr is a small Python library that allows you to find all the IP addresses of the computer. It is tested on Linux, OS X, and Windows. Other BSD derivatives like OpenBSD, FreeBSD, and NetBSD should work too, but I haven’t personally tested those. Solaris/Illumos should also work.

This library is open source and released under the MIT License. It works with Python 2.7 and 3.5+.

You can install it with pip install ifaddr. It doesn’t need to compile anything, so there shouldn’t be any surprises. Even on Windows.

Project links:

Let’s get going!

import ifaddr

adapters = ifaddr.get_adapters()

for adapter in adapters:
    print("IPs of network adapter " + adapter.nice_name)
    for ip in adapter.ips:
        print("   %s/%s" % (ip.ip, ip.network_prefix))

This will print:

IPs of network adapter H5321 gw Mobile Broadband Driver
   IP ('fe80::9:ebdf:30ab:39a3', 0L, 17L)/64
IPs of network adapter Intel(R) Centrino(R) Advanced-N 6205
   IP ('fe80::481f:3c9d:c3f6:93f8', 0L, 12L)/64
IPs of network adapter Intel(R) 82579LM Gigabit Network Connection
   IP ('fe80::85cd:e07e:4f7a:6aa6', 0L, 11L)/64
IPs of network adapter Software Loopback Interface 1
   IP ('::1', 0L, 0L)/128

You get both IPv4 and IPv6 addresses. The later complete with flowinfo and scope_id.



  • Fixed Python 3 compatibility in the examples, thanks to Tristan Stenner and Josef Schlehofer
  • Exposed network interface indexes in Adapter.index, thanks to Dmitry Tantsur
  • Added the license file to distributions on PyPI, thanks to Tomáš Chvátal
  • Fixed Illumos/Solaris compatibility based on a patch proposed by Jorge Schrauwen
  • Set up universal wheels, ifaddr will have both source and wheel distributions on PyPI from now on


Alastair Houghton develops netifaces which can do everything this library can, and more. The only drawback is that it needs to be compiled, which can make the installation difficult.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ifaddr, version 0.1.7
Filename, size File type Python version Upload date Hashes
Filename, size ifaddr-0.1.7-py2.py3-none-any.whl (10.8 kB) File type Wheel Python version 3.8 Upload date Hashes View
Filename, size ifaddr-0.1.7.tar.gz (9.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page