A graphical application for managing network interfaces and routing traffic from specific applications through selected interfaces.
- Add or remove network interfaces (e.g., TAP interfaces).
- List all network interfaces and mark newly added interfaces.
- Route traffic from selected applications through chosen network interfaces.
- Process selection interface with sortable columns by PID and process name.
- Launch applications bound to specific interfaces using IP addresses.
- Python 3.x
- Dependencies: Install the following libraries using pip:
pip install psutil
- Windows OS with administrative privileges.
- tapctl.exe for managing TAP interfaces (usually part of OpenVPN installation).
- ForceBindIP (Leave link, cause you can download just source and do not install it)
- Clone the repository:
git clone https://github.com/Azaki21421/Interface-control.git
cd Interface-control
- Install dependencies:
pip install psutil
- openvpn (tap driver)
- ForceBindIP
- Run the application:
python network_manager.py
Note: The script requires administrator privileges to manage network interfaces. It will prompt you to run as an administrator if not already elevated.
- Add Interface: Click "Add Interface" to create a new TAP interface.
- Remove Interface: Click "Remove Interface" to delete an existing interface.
- Assign Routes:
- Click "Assign Routes" to open the process selection window.
- Select a process by PID or name.
- Choose a network interface to bind the application’s traffic.
Replace OpenVPN Dependency:- The current implementation uses tapctl.exe from OpenVPN to manage TAP interfaces. Find a suitable alternative that does not rely on OpenVPN.- Find Alternative to ForceBindIP:
- The application currently uses ForceBindIP to bind applications to specific network interfaces. Consider alternatives or custom implementations for binding traffic to interfaces.
- Enhance Error Handling:
- Improve error handling when managing interfaces and routing traffic.
- Cross-Platform Support:
- Extend functionality to support other operating systems like Linux and macOS.
- Configuration for created interface:
- Add posibility to modify created network interface in app
psutil
: For retrieving system and network interface information.tapctl.exe
: Command-line utility for managing TAP interfaces.ForceBindIP
: Tool to bind applications to specific network interfaces (needs replacement).