Skip to main content

A cross-platform GUI network adapter and route manager.

Project description

Py NIC Manager

Py NIC Manager is a cross-platform Python GUI for viewing and changing network adapter settings, loopback-style adapters, route tables, and saved network configuration snapshots.

The application is written in English and uses the Python standard tkinter GUI toolkit. It can run on Windows and POSIX systems. Administrative actions require Administrator/root privileges; when the app is started without those privileges, it opens in read-only mode and clearly asks the user to restart it with elevated permissions.

Features

  • View network adapters, IPv4 addresses, MAC addresses, gateways, DNS servers, DHCP state, and loopback status.
  • Edit existing adapter IPv4 address, prefix length, gateway, DNS servers, MAC address, and DHCP mode where the operating system backend supports it.
  • Create, edit, and delete loopback-style adapters:
    • Windows: Microsoft KM-TEST Loopback Adapter through devcon.exe.
    • Linux: dummy interfaces through ip link.
    • macOS and generic POSIX: loopback aliases on lo0.
  • View, add, update, and delete IPv4 routes through a visual route table editor.
  • Export the current adapters and routes to a JSON configuration snapshot.
  • Import a saved snapshot and apply it as a best-effort one-click restore after previewing the system commands that will run.
  • Preview every mutating command before execution.

Installation

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .

On Linux or macOS:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .

The project depends on is-admin-user for privilege detection.

Running

py-nic-manager

Or:

python -m py_nic_manager

Use an elevated shell when you want to change system settings:

  • Windows: run PowerShell or Command Prompt as Administrator.
  • Linux/macOS/POSIX: run with sudo, doas, or an equivalent root session.

Without elevation, the app can still view adapters/routes and export configuration snapshots.

Platform Notes

Windows

The Windows backend uses PowerShell networking cmdlets, netsh, route, and pnputil.

Creating a Microsoft KM-TEST Loopback Adapter requires devcon.exe from the Windows Driver Kit to be available on PATH. Windows does not provide a simple built-in netsh command that reliably creates this adapter on every version.

Linux

The Linux backend uses ip from iproute2. DNS and DHCP persistence are handled through NetworkManager (nmcli) when available, with resolvectl used as a DNS fallback.

Loopback-style adapters are implemented as Linux dummy interfaces.

macOS

The macOS backend uses networksetup, ifconfig, route, and netstat. Loopback creation is implemented as an address alias on lo0, because macOS does not create independent loopback NICs in the same way Linux creates dummy interfaces.

Generic POSIX

For POSIX systems that are not Linux or macOS, the app uses a conservative ifconfig/route fallback. Viewing should work on many Unix-like systems, but some mutating operations are intentionally limited because network management varies widely across BSDs and commercial Unix systems.

Configuration Snapshots

Exported files are JSON documents with this high-level shape:

{
  "schema_version": 1,
  "platform": "Windows",
  "captured_at": "2026-06-17T02:00:00+00:00",
  "adapters": [],
  "routes": []
}

When applying an imported snapshot, Py NIC Manager:

  1. Matches adapters by backend ID first, then by adapter name.
  2. Updates matched adapters with the saved IPv4, gateway, DNS, MAC, and DHCP values where supported.
  3. Adds saved IPv4 routes.
  4. Shows skipped adapters and platform limitations in the command preview.

Applying a snapshot from another operating system is allowed only after a warning and is best-effort.

Development

Run tests:

python -m pytest -q

Run a syntax check:

python -m compileall py_nic_manager tests

Safety

Network configuration changes can disconnect the machine, break DNS resolution, or remove routes that are needed for remote access. Always review the command preview before applying changes, and export a known-good snapshot before making large edits.

Project details


Download files

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

Source Distribution

py_nic_manager-0.1.1.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_nic_manager-0.1.1-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file py_nic_manager-0.1.1.tar.gz.

File metadata

  • Download URL: py_nic_manager-0.1.1.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10

File hashes

Hashes for py_nic_manager-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4fd433414701dd61036fd6753c4eacac8011a12401d1a6ef454ca5498570a1aa
MD5 7a79e5be36042898f761b2e858f617f3
BLAKE2b-256 b8b87cd7042f8f678fe88da552148d52c3f8993f4e88456922bf62af6125a128

See more details on using hashes here.

File details

Details for the file py_nic_manager-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: py_nic_manager-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10

File hashes

Hashes for py_nic_manager-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0bc3d46267268057b24613d103f21e395abec06cd75314b39adf0fe27783d5ee
MD5 b892e227f5868aacdb8777ebd64a66da
BLAKE2b-256 1801d1d9fa8d3bc4741a26334344e744ed7b1aa2e441fe23c910183b63d9ded4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page