There are times when you are able to have both a wired and wireless adapter connected to different networks at the same time. A simple example is when you’re connected to your home router using the wired Ethernet adapter while an unencrypted Wi-Fi network is also available to connect using your wireless adapter. With both wired and wireless adapters connected to different networks at the same time, Windows does not give you the advantage of binding both of the adapters to give you a faster connection speed.
Which network adapter is being used for Internet purposes will depend on the metric being automatically assigned to the network adapter by Windows. Although it is possible to disable the automatic metric feature and override it with a custom value, this will only route all but not specific Internet applications to a network adapter.
The ability to configure which IP address or network adapter to use for an application is commonly found in a BitTorrent client software such as uTorrent, Vuze, Tixati and Deluge. If your program does not support IP or network adapter binding, fortunately there is a very unique free and small program called ForceBindIP that allows you to control which network adapter or IP address to use on an application.
ForceBindIP is a command line application without a friendly graphical user interface that allows you to easily bind a selected application with an IP or network adapter. In order to use ForceBindIP, you will need to know the IP address of the network adapter that you want to use to bind and the full path to the application. You can either type “ipconfig” in command prompt to show the IP address of the network adapters or simply download AdapterWatch and use it to display the information in a GUI.
ForceBindIP was made during the Windows XP era when a 64-bit Windows operating system wasn’t very commonly used. Installing ForceBindIP on a 64-bit Windows operating system is a bit different compared to installing on 32-bit OS. Hence, the method to launch ForceBindIP is also not the same since the installation path has changed.
Install and Use ForceBindIP in 32-bit Windows
For 32-bit Windows, the ForceBindIP setup installer will copy 2 files, BindIP.dll and ForceBindIP.exe, to the C:\Windows\System32\ folder. You can conveniently run ForceBindIP.exe from any location in command prompt because the system32 path is a recognized environment variable. So if you want to bind an IP address, for example 192.168.2.32 to Firefox, the command would be:
ForceBindIP.exe 192.168.2.32 "C:\Program Files\Mozilla Firefox\firefox.exe"
It is important to enclose the full path of the program with a double quote because there are whitespaces in between the characters in the path.
Install and Use ForceBindIP in 64-bit Windows
Installing ForceBindIP using the setup installer on a 64-bit Windows operating system will result in the 2 files BindIP.dll and ForceBindIP.exe being copied to C:\Windows\SysWOW64\ and not the system32 folder. Unfortunately the SysWOW64 is not a recognized environment variable which means you cannot run ForceBindIP.exe from any location in command prompt.
There are 2 solutions to this problem which is either to run ForceBindIP.exe from SysWOW64 or manually copy the 2 files to the System32 folder and the latter will allow you to conveniently run ForceBindIP.exe from any location in command prompt. If you don’t want to manually copy the files to system32, the command line to bind Firefox to the IP 192.168.2.32 is as follows:
%SystemRoot%\SysWOW64\ForceBindIP.exe 192.168.2.32 "C:\Program Files\Mozilla Firefox\firefox.exe"
Run ForceBindIP with a GUI (Graphical User Interface)
Although ForceBindIP does not come with a GUI, the required command line parameters aren’t that complicated. However, not everyone is familiar in using command prompt and manually typing commands. Hence there are a few third party frontend GUI programs for ForceBindIP to help the less experience users in binding a specific IP address to an application.
1. ForceBindIP GUI v1.5 by LibTiff
This version of ForceBindIP GUI by LibTiff requires the user to manually enter the IP address that you want to bind to the application and then you are able to browse the executable file. Clicking the Force IP button will attempt to use ForceBindIP to bind the provided IP address to the selected program. You can save the binds to an external list so that you can quickly run multiple programs with the previous binded settings.
It works even if the ForceBindIP files are installed on a 64-bit Windows operating system so there is no need to manually move the files to System32 folder. There is no -i support though.
2. ForceBindIP GUI 1.0 Beta by Michael Jones
ForceBindIP GUI by Michael Jones requires Java to run and it has some advantages over the GUI version by LibTiff mentioned above. First you get to select the IP address which is very useful for users who doesn’t know how to look up the internal IP address for the network adapter. Then you get to create a list of applications that automatically runs and binds to the selected IP address by clicking the “Launch Apps” button. The favorite list is automatically saved and will be restored when you re-run the program.
3. ForceBindIP GUI by Donlawat
ForceBindIP GUI by Donlawat does not work out of the box on 64-bit Windows operating systems because it is hard coded to detect and run ForceBindIP from the system32 folder but not in SysWOW64. So if you want to use this GUI version of ForceBindIP on a 64-bit Windows, you just need to manually copy BindIP.dll and ForceBindIP.exe to the C:\Windows\System32\ folder. Moreover, it requires .NET Framework 3.5 to run which needs to be manually installed from “Turn Windows features on or off” (OptionalFeatures.exe) in Windows 8 and 10.
However, a slight advantage of this GUI version is the ability to bind a program with an IP address using the delayed injection -i method which is not found in the first two GUI mentioned above.
Additional Notes: Although the official ForceBindIP website stated that it will only run on Windows NT/2000/XP/2003, it does actually work in Vista, 7, 8, 8.1 and even the latest Windows 10 for both 32-bit and 64-bit. If the program crashes after binding an IP, you can try adding an optional -i parameter to the command line. Not all programs can be bound to a specific IP address because they do not use the standard Winsock functions. You can verify if it is working by looking at the Received and Sent Data column in AdapterWatch.