ifcfg
Python ifconfig wrapper for Unix/Linux/MacOSX + ipconfig for Windows
Decision gist · record as of 2026-08-14
Yes, if you need simple cross-platform network interface discovery and can tolerate dormancy. The package is stable, dependency-free, and widely used. Install it for straightforward IP/interface queries; avoid it if you need active maintenance, support for non-English Windows, or cutting-edge Python version guarantees. Check that system commands (ifconfig/ipconfig/ip) are available on your target platforms.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires ifconfig, ipconfig, or ip command available on the system; Windows support is English-only.
- Installation is straightforward with no runtime dependencies.
- The package is dormant (last release 2023-04-19, no commits for 1213 days), but marked Production/Stable and has been maintained across multiple Python versions including 3.10 and 3.11.
License · maintenance · safety
BSD (permissive) — BSD License (permissive) allows commercial and private use with minimal restrictions—include a copy of the license and attribute the original authors.
last release 2023-04-19 (1213 days) · last repo commit 2023-10-31 · 61 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 151,081 downloads/mo, #10,945 on PyPI
Alternatives
Verify before relying
import ifcfg
for name, interface in ifcfg.interfaces().items():
print(f"{name}: {interface['inet']}")
default = ifcfg.default_interface()- Whether non-English Windows systems are now supported (release notes indicate known issues with localization).
- Current test coverage and whether the package works reliably on modern Python 3.10+ given the long dormancy.
- Actual usage scale and reliability in production environments.
What it is and what it does
Ifcfg is a lightweight cross-platform wrapper around system network configuration commands. It parses the output of ifconfig (Unix/Linux/macOS), ipconfig (Windows), or the ip command (newer Unix systems) and returns structured data about network interfaces—IP addresses (both IPv4 and IPv6), netmasks, MAC addresses, broadcast addresses, MTU, and interface flags. The library handles multiple addresses per interface and provides a simple dictionary-based API to query all interfaces or retrieve the default interface.
The package is useful when you need to programmatically discover local network configuration without external dependencies. It has no runtime dependencies and installs as a pure Python wheel. The main trade-off is that it relies on system commands being present and their output format remaining stable; Windows support is documented as English-only, and the project has been dormant since 2023-04-19.
Use it for
- Retrieve the local IP address of the default network interface for service discovery or logging.
- Enumerate all network interfaces and their addresses to configure multi-homed applications.
- Detect MAC addresses for hardware identification or network diagnostics.
- Extract netmask and broadcast information for subnet calculations in network tools.
- Build cross-platform network utilities that need to work on Windows, Linux, and macOS without external libraries.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need simple cross-platform network interface discovery and can tolerate dormancy.
The package is stable, dependency-free, and widely used. Install it for straightforward IP/interface queries; avoid it if you need active maintenance, support for non-English Windows, or cutting-edge Python version guarantees. Check that system commands (ifconfig/ipconfig/ip) are available on your target platforms.
Install
ifcfg on PyPI
Before you install
Installation is straightforward with no runtime dependencies. The package is dormant (last release 2023-04-19, no commits for 1213 days), but marked Production/Stable and has been maintained across multiple Python versions including 3.10 and 3.11.
Requires ifconfig, ipconfig, or ip command available on the system; Windows support is English-only.
License in practice
BSD License (permissive) allows commercial and private use with minimal restrictions—include a copy of the license and attribute the original authors.
Quickstart
import ifcfg
for name, interface in ifcfg.interfaces().items():
print(f"{name}: {interface['inet']}")
default = ifcfg.default_interface()
Verify before relying
- Whether non-English Windows systems are now supported (release notes indicate known issues with localization).
- Current test coverage and whether the package works reliably on modern Python 3.10+ given the long dormancy.
- Actual usage scale and reliability in production environments.
Package facts
| License | BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Dormant 1,213 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 151,081 / month, #10,945 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: PyPy |
Evidence: ifcfg-0.24-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “parse ifconfig output”
- ifcfgIfcfg parses network interface configuration from system commands…
- textfsmTextFSM parses semi-structured text (like CLI command output) using…
- PyRICPyRIC provides programmatic control over Linux wireless interfaces,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also netifaces-plus · netifaces · IPy · ifaddr · getmac · ipaddr · netaddr · whichcraft · ipwhois · zeroconf