Skip to main content

ixconfig

Quick and simple ifconfig and iwconfig parsing.

Install

pip install ixconfig

Usage

import ixconfig

# ifconfig

# returns an Ifc object - runs `ifconfig`
ifc = ixconfig.Ifc()
# which behaves like a dict
assert ifc['wlan0']['ip'] == "192.168.1.237"
# or an attrdict
assert ifc.wlan0.ip == "192.168.1.237"

# when you pass in an interface, it runs `ifconfig wlan0`
ifc = ixconfig.Ifc('wlan0')
# and then you can just access the attributes directly
assert ifc['ip'] == "192.168.1.237"
assert ifc.ip == "192.168.1.237"

# iwconfig

iwc = ixconfig.Iwc()
assert iwc['wlan0']['quality'] == 92.0
assert iwc.wlan0.quality == 92.0

iwc = ixconfig.Iwc('wlan0')
assert iwc['quality'] == 92.0
assert iwc.quality == 92.0

Notes

This was code that I factored out of another project a while back. Eventually, I think this functionality should be covered ifcfg, but they don't handle iwconfig at the moment.

So until then, this package covers very basic parsing for both ifconfig and iwconfig.

Example Outputs

ifc = ixconfig.Ifc()
iwc = ixconfig.Iwc()
print(ifc)
print(iwc)
( $ ifconfig ) {
    "docker0": {
        "broadcast": "172.17.255.255",
        "ip": "172.17.0.1",
        "ipv6": "fe80::42:f2ff:fe23:bb38",
        "mac": "02:42:f2:23:bb:38",
        "mtu": 1500,
        "name": "docker0",
        "netmask": "255.255.0.0",
        "rx_dropped": 0,
        "rx_errors": 0,
        "rx_overruns": 0,
        "rx_packets": 21326,
        "tx_carrier": 0,
        "tx_collisions": 0,
        "tx_dropped": 0,
        "tx_errors": 0,
        "tx_overruns": 0,
        "tx_packets": 30842
    },
    ...
    "wlan0": {
        "broadcast": "192.168.1.255",
        "ip": "192.168.1.237",
        "ipv6": "fe80::2998:5b3c:8ffb:a03d",
        "mac": "dc:a6:32:5d:df:ce",
        "mtu": 1500,
        "name": "wlan0",
        "netmask": "255.255.255.0",
        "rx_dropped": 0,
        "rx_errors": 0,
        "rx_overruns": 0,
        "rx_packets": 1960938,
        "tx_carrier": 0,
        "tx_collisions": 0,
        "tx_dropped": 0,
        "tx_errors": 0,
        "tx_overruns": 0,
        "tx_packets": 2790429
    }
}

( $ iwconfig ) {
    "wlan0": {
        "access_point": "A0:8E:78:59:45:D2",
        "bitrate": 72.2,
        "bitrate_unit": "Mb/s",
        "freq": 2.462,
        "freq_unit": "GHz",
        "mode": "Managed",
        "name": "wlan0",
        "power_mgmt": "on",
        "quality": 50.0,
        "quality_ratio": 0.7142857142857143,
        "ssid": "MySpectrumWiFicc-2G",
        "strength": -60.0,
        "strength_unit": "dBm"
    }
}

Release files for ixconfig 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ixconfig 0.1.1
File Size Uploaded
ixconfig-0.1.1.tar.gz 5.1 kB Details

Release files / ixconfig-0.1.1.tar.gz

Download URL ixconfig-0.1.1.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6eaedc12937d1c23dd9f1a967e1a3ae422faeea43d284043fb2960c5f67540bc
BLAKE2b-256 checksum
How to use checksums
46d2f9479f07a8d02f96d1295e99e1e4b249181e70dc9b0ffa5b13b5d4c7b3a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0.post20201103 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page