Download
The latest release of NetShift is available on the Releases page.
Download the NetShiftInstaller.exe file directly from GitHub Releases and run it as Administrator to install.
Overview
NetShift is a Windows utility that simplifies switching IP settings on network adapters. It allows users to quickly toggle between static IP configurations and DHCP using predefined presets — ideal for environments where network settings frequently change.
The app is designed to be user-friendly, secure, and efficient, minimizing user privilege requirements while maintaining robust functionality.
Key Features
- Preset Management: Save, apply, and delete IP configuration presets.
- DHCP Support: Reset adapters to DHCP easily.
- Network Adapter Detection: Lists physical adapters (excludes Bluetooth adapters).
- Registry Fallback: Preconfigure IP settings when adapters are disconnected.
- Service-Based Architecture: A LocalSystem Windows service (NetShiftServiceCpp) handles privileged operations, installed via NetShiftServiceInstaller.
- Installer: Self-contained installer with .NET 8 Desktop Runtime handling.
Security Considerations
| Risk | Mitigation |
|---|---|
| Service runs as LocalSystem | Local-only named pipe, input validation, and code signing. |
| Code signing | All binaries are signed via SSL.com cloud signing to preserve trust. |
| User privilege model | Main app runs standard user level (asInvoker), no UAC prompt. |
| Log files | Logs are stored under user-local AppData, access-controlled. |
| Local network communication | WCF NetNamedPipeBinding used, locked to localhost only. |
Installation
Prerequisites
- Windows 10 (x64) or later.
- .NET 8 Desktop Runtime.
Steps to Install
- Download the latest
NetShiftInstaller.exefrom the Releases page. - Run
NetShiftInstaller.exeas Administrator. - Follow the installer prompts.
Silent Install
For automated deployments:
NetShiftInstaller.exe /silent
Usage
- Launch NetShift from Start Menu or Desktop.
- Select a network adapter.
- Apply a preset or manually configure IP settings.
- Click “Apply” or “Reset to DHCP.”
- Save new presets for quick switching.
Building and Contributing
Automated Build and Release
This project uses GitHub Actions to automatically:
- Build the NetShift application (NetShiftMain), service (NetShiftServiceCpp), and installer helper (NetShiftServiceInstaller).
- Package the signed installer EXE using Inno Setup.
- Cloud sign all binaries using SSL.com eSigner.
- Publish new signed releases on GitHub.
The pipeline only triggers when:
- A version tag (e.g., v1.0.1) is pushed.
Manual Local Build
If you want to build manually:
- Clone the Repository:
git clone https://github.com/Mainframe79/NetShift.git
cd NetShift
- Install Prerequisites:
- Visual Studio with .NET desktop workload
- .NET desktop development workload (for NetShiftMain and NetShift.Models).
- Desktop development with C++ workload (for NetShiftServiceCpp and NetShiftServiceInstaller).
- Build Projects:
-
Open NetShift.sln in Visual Studio.
-
Build the solution in Release|x64 configuration:
-
- NetShiftMain (C# WPF app).
-
- NetShiftServiceCpp (C++ service).
-
- NetShiftServiceInstaller (C++ installer helper).
-
The build outputs will be in:
-
- NetShiftMain\bin\x64\Release\net8.0-windows\net8.0-windows\NetShiftMain.exe
-
- NetShiftServiceCpp\x64\Release\NetShiftServiceCpp.exe
-
- NetShiftServiceInstaller\x64\Release\NetShiftServiceInstaller.exe
Build the Installer: Navigate to NetShiftSetup and run the Inno Setup compiler (ISCC.exe) on setup.iss:
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" NetShiftSetup\setup.iss /DMyAppVersion="1.0.0"
The installer (NetShiftInstaller.exe) will be generated in the artifacts directory.
- Test Installer:
copy NetShift\artifacts\NetShiftInstaller.exe C:\Temp\
cd C:\Temp
NetShiftInstaller.exe
Contributing
Pull requests are welcome!
Please fork the repository, make your changes, and submit a pull request.
Ensure changes are well-tested and match the project’s security-first standards.
How It Works
User --> NetShiftMain.exe (runs as Standard User)
|
--> (Named Pipe Communication: \\.\pipe\NetShiftService)
--> NetShiftServiceCpp.exe (runs as LocalSystem)
|
--> Windows Networking Stack (Change IP / DHCP Settings)
- The user interacts with a normal UI without needing elevation.
- All privileged operations (IP reconfiguration, registry edits) happen securely through the service.
- The service is isolated, only accessible locally, and installed via NetShiftServiceInstaller.exe.
License
NetShift is licensed under the MIT License.