UPnP NAT Router Configurator

Current version: 1.2

Two issues to resolve when setting up a home server (after SECURITY) are

  1. opening up a port in your router/firewall for incoming connections
  2. knowing and advertising your external IP address (especially when it changes because you rebooted your DSL router

This tool can help with both. A UPnP (Universal Plug-n-Play) enabled router can be provisioned by a Windows program (a process called NAT router traversal). The router can also tell you your external IP address. This program does both of these things for you.

Files:  Zip Archive containing both the 32-bit and 64-bit versions with MD5 hash and PGP signature.

Important Info

  • This version of the tool was compiled under Visual Studio 2008 (VC9) on Windows 7 Professional. The resulting 32-bit and 64-bit executables were tested on Windows Vista Business 32-bit and Windows 7 Professional 64-bit systems.
  • The Windows XP SP3 32-bit system I tried this program on showed some problems. Things that used to work fine do so no longer. I am still tracking down why that is a problem.
  • You MUST be running at least Windows XP. The Windows API being used is apparently only available since Windows XP, and even then some things are not so happy making.
  • You need a router with Universal Plug-n-Play (UPnP) and to have UPnP enabled.
  • Back when I first built this tool it turned out that your system had to be using DHCP (dynamic host control protocol) rather than a static IP address. Othewise the OS would not pass out the information about the mappings. I am uncertain whether that requirement still applies.

Line-item Format

The line-item format is:

 [check] PROTO EIP:ePort =>IIP:iPort :: Name
  • [check] is checked if the mapping is enabled
  • PROTO is either TCP or UDP for the packet type being mapped
  • EIP is the EXTERNALLY VISIBLE IP ADDRESS -- this is what you advertise
  • ePort is the external port being mapped
  • IIP is the internal IP to route packets to
  • iPort is the internal port for the mapping
  • Name is the string describing the mapping (what service it supports)

Here is a screen shot. My EXTERNAL IP address is censored for my own safety. :)

The User Interface