Whenever I add a network printer to one of my Windows computers at home I end up with a reference to a hard-coded IP address. That means that the next time my home router reboots and assigns a different IP address, I lose the ability to print. Having the printer configured to a hard-coded IP address is like browsing to 18.104.22.168 instead of www.google.com.
In order to ensure reliable printing for my family I have had to do some printer configuration jujitsu and I want to share my steps here, if only so that I’ll remember them next time.
The basic trick is to find the name of the printer and then change the printer configuration to reference the name instead of the IP address. I don’t know why Windows doesn’t do this by default – this problem has existed for many years, with many printers.
All of these steps were done on Windows 7 with a Brother MFC-7820N printer, but I’ve done similar steps with other printers.
Finding the current port
Going to Devices and Printers I found my newly added printer, looking something like the image below:
Right clicking on it I selected Printer Properties (not Properties) and navigated to the Ports tab, which looks like this:
You may also be able to get to this dialog by double-clicking the printer and then double-clicking Customize your printer. Poke around until you find it.
If your computer has some printer history then there may be many TCP/IP ports. Pay close attention to which one is selected for your printer because clicking anywhere in the list will change the selected port.
In this case my printer is associated with TCP/IP port number 192.168.0.193 rather than a name and I need to fix this in order to keep it working. The next step is to figure out the printer name. There are a couple of ways of doing this. For both of these techniques you should probably make sure that the printer is on, in case it needs to respond.
Browsing to your printer
If you type your printer’s IP address into your web browser’s address bar then you may get taken to a web page served up by your printer, such as this:
This page may give you a way to find the printer’s name. For this particular printer if you click on Network Configuration, and type in the username and password (admin and access if you haven’t changed them), then you will see a page that includes the Node Name – the printer’s network name:
In this case BRN_88AA08 is the printer’s name.
IP to name through the command line
If browsing to your printer doesn’t work or if you prefer using the command line then there is an alternative. Open up a command prompt and type:
nbtstat -a 192.168.0.193
Replace the IP address with whatever your printer’s IP address is and you should see results that look something like this:
Wireless Network Connection:
Node IpAddress: [192.168.0.191] Scope Id: 
NetBIOS Remote Machine Name Table
Name Type Status
BRN_88AA08 <00> UNIQUE Registered
BRN_88AA08 <20> UNIQUE Registered
This command confirms that the printer’s name is BRN_88AA08. We can confirm this one more time by pinging the printer name and observing that it resolves to the original IP address.
Now we just have to tell Windows to use the printer name instead of the hard-coded IP address. To do that click on Add Port… from the Ports tab of the Printer Properties dialog. Select Standard TCP/IP Port, click New Port… again, then type the printer name into the Printer Name field. The default Port Name should be fine. Then click Next.
Windows will spend a while detecting the port and will then add it to the list.
Finally you will end back at this dialog where you can select your port name, and optionally delete the old (and now unneeded) hard-coded port.
That’s it. Your kids’ homework assignments will now print reliably without requiring emergency tech support calls.
You can do the process slightly faster by using Configure Port… on the original numeric IP address and just changing the Printer Name or IP Address field. This avoids the port detection phase. But, this leaves the port name as the numeric IP address, which seems a bit confusing.
Adding the new port has to be done on every computer that adds the printer, but at least you don’t have to repeat the steps to find the printer name, so the process can go quite quickly. And again, I really don’t understand why Windows doesn’t do this automatically. I know I’m not the only person who has hit this problem.
Update: I just verified that the problem (and solution) are identical in Windows 8.1. No wonder I hate computers.