Home Page, Help Page, Support, Download the HOSTS and HELP files   [Back]
| NAT32 VERSION 2.2 BUILD 22352               22. February, 2023 |
|                                                                |
|    NAT32 Version 2.2 IP Router for Windows 7, 8, 10 and 11.    |
|                                                                |
|               (C) 2022 NAT Software, Australia.                |
|                                                                |
|                   Default Password: nat32v2                    |
|                                                                |

NAT32 Version 2.2 is a Windows application that provides Internet
Connection Sharing and Routing, DHCP and DNS Services, Wireless
Access Point services and Connection Aggregation for multiple LAN,
WAN, WLAN, WWAN, VPN and Bluetooth connections.

NAT32 Version 2.2 is the only software of its kind that supports
selective, forced routing of Internet traffic via an OpenVPN

NAT32 Version 2.2 is the only software of its kind to support two
Internet gateways per network, with automatic fail-over should the
main Internet gateway fail.

NAT32 Version 2.2 runs on ALL current 32-bit and 64-bit platforms,
including most Server and Embedded editions and is ideally suited
for use as a supplementary router in home and office networks.

A flexible DNS Analyser protects all machines against undesirable
Internet content such as malware, tracking and advertising.

NAT32 Version 2.2 consists of approx. 300,000 lines of C code as
counted with LocMetrics.exe. The nat32.exe file is approximately
1.8 MB in size. It has no runtime dependencies other than the
standard C runtime available on all Windows platforms.

|                                                                |
|                            LICENCE                             |
|                                                                |
| NAT32 Version 2.2 is available as a free generic version       |
| for home and educational use. The generic version is fully     |
| functional and includes the needed device driver otherwise     |
| obtainable from:                                               |
|                                                                |
|                  https://www.ntkernel.com                      |
|                                                                |
| The driver has its own installer and appears in the System as  |
| the NDISRD Service.                                            |
|                                                                |
| Redistribution of NAT32 without prior written consent from the |
| NAT32 Author is STRICTLY FORBIDDEN.                            |
|                                                                |

|                                                                |
|                           SUPPORT                              |
|                                                                |
|       NAT32 support is available via this link:                |
|                                                                |
|       https://www.nat32.com/v2/register.htm                    |
|                                                                |
|       BE SURE to download the help2.zip file from:             |
|                                                                |
|       https://www.nat32.com/download2/help2.zip                |
|                                                                |
|       and then unzip it into your NAT32v2 directory.           |
|       This file contains not only help files, but also         |
|       script files for many of NAT32's advanced features.      |
|                                                                |
|       BE SURE to download the hosts.zip file from:             |
|                                                                |
|       https://www.nat32.com/download2/hosts.zip                |
|                                                                |
|       and then unzip it into your NAT32v2 directory.           |
|       This file contains the HOSTS.INI file needed to          |
|       block known malware and tracking sites.                  |
|                                                                |

What's new in each release

February, 2023 ***** [CURRENT BUILD   22352] *****
               ***** [CURRENT DRIVER 3.2.32] *****
               ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - BUGFIX: UDP source port now randomized.

    - BUGFIX: Default password is now no longer valid after a new
              password has been set.

    - BUGFIX: GPF in 'routes vpn' command fixed.

    - Honeypot server now supports POST requests.

    - For further changes see the updated help files.

December, 2022 ***** [CURRENT BUILD   22349] *****
               ***** [CURRENT DRIVER 3.2.32] *****
               ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - BUGFIX: Drop-down menu items now work correctly after an
      RDP session.

    - For further changes see the updated help files.

September, 2022 ***** [CURRENT BUILD   22348] *****
                ***** [CURRENT DRIVER 3.2.32] *****
                ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - See the updated help files

April, 2022 ***** [CURRENT BUILD   22346] *****
            ***** [CURRENT DRIVER 3.2.32] *****
            ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - Honeypot SSL daemon deprecated.

    - DNSRD now returns NXDOMAIN responses for blocked names.

    - PiHole support added. Use the pihole command to specify
      which hosts are to resolve names via the PiHole.

    - TCP support modified.

    - FritzBox scripts updated for FritzOS 7.29

    - Packet scheduling modified. The new algorithm is fairer.

    - Several minor bugs fixed.

October, 2021 ***** [CURRENT BUILD   22342] *****
              ***** [CURRENT DRIVER 3.2.31] *****
              ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - CRONTAB modified to run 'tcpc all' instead of 'tcpa all'.

    - Switch command can now be used to embed a browser in a window
      that doesn't have one. Example: switch 0 web

    - Command 'winmap tcp' modified to not add port mappings for
      local connections.

    - Command 'wintcp listen' bug fixed.

    - Commands 'switch', 'webo' and 'webc' fixed.

    - Netstat applet now has a Help button.

    - Command 'ns' now defaults to use NS1 for lookups.

    - Command 'netcheck' fixed.

    - Function IPGETP() now works correctly for MSTCP traffic.

    - Command 'kill' may not always kill a process on the first
      attempt. The second attempt will succeed.

    - Nhupdate now terminates reliably.

    - New packet scheduling algorithm implemented. IPPROC, IP_IN
      and IPGETP extensively modified. DEQ(q, ifn) implemented.

    - IPPROC now runs at higher priority per default.

    - GETBUF now clears allocated buffers.

    - EZERO now clears the entire packet.

    - Function udpsend() modified.

    - All netin threads set the netin_event when no buffers left.

September, 2021 ***** [CURRENT BUILD   22340] *****
                ***** [CURRENT DRIVER 3.2.28] *****
                ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - Errors in tcpbind() fixed.

    - Netstart no longer starts udpecho and tcpecho when any
      PPP adapters are configured.

    - RDP probes now work again.

    - OpenVPN gateway check modified.

    - IPPROC modified to NOT bypass routing of special traffic.

    - Dialer.htm modified to include a Status button.

    - IPPUTP modified to correctly handle mapped GRE packets.

    - HTTPW modified to not modify URLs with cmdfixupx().

    - Trace display improved.

    - Command checki p.x now defaults to a TTL of 6. Note that
      the command uses ICMP, and so some routers may not send
      time-exceeded replies.

    - Function tcpa may free memory allocated within another
      process. This is not an error, although it does gnerate
      debug output.

    - Semaphore delete bug fixed.

    - New variable 'checkttl' added for checki command. Used to
      specify the number of hops for ICMP probes.

August, 2021 ***** [CURRENT BUILD   22340] *****
             ***** [CURRENT DRIVER 3.2.28] *****
             ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - OpenVPN first-time connection issue fixed in regmon.c

    - Problem with PTR queries fixed in dns_utils.c.

    - Command setp modified.

    - Modified switch.tcl to use new setp calling syntax.

    - Command setgs modified.

    - HOSTD and x_nethood extensively modified.

    - Rttimer modified to clear openvpn_ref on disconnect.

    - FritzBox scripts modified for FritzOS 7.27

    - HOSTD local queries are now answered correctly.

    - RASIN thread now sets an exit function.

    - RAS support for Windows 10 updated.

    - RAS issues fixed: dial, hangup and VPN routes.

July, 2021 ***** [CURRENT BUILD   22338] *****
           ***** [CURRENT DRIVER 3.2.28] *****
           ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - New global variables added so that filters no longer require
      hardcoded IP addresses and masks.

    - Command 'ip ifn' modified to update the above globals.

    - Command setf modified to allow partially specified filters.
      Such filters now default to 'block'.

    - DNS Resolver PTR queries now return accurate names.
      The name 'nat32.dns' is only returned for ni_ip queries.

    - Command 'isolate' has new syntax described in isolate.htm

    - pnetin isolation code modified.

    - ip_in isolation code modified.

    - New mac.ini file

    - File kodak.txt modified to include DNS setting commands.

    - Help page for setnss command updated.

    - TCPC functions and command modified.

    - Honeypot_ssl connection close modified.

    - New command: tcpa dev | all
      Deallocates the TCB for abandoned connections.

    - whname2ip now only returns local IP addresses, not remotes.

    - DHCPD modified to work with ESP32 devices.

    - HOSTD now ignores ISATAP containers.

    - Updating the Hosts list now executes faster.

    - mDNS and LLMNR support improved.

    - IPPROC now starts correctly on Restart.

    - ARP Q problems corrected.

    - TCP device Q problems corrected.

    - Regmon.c modified.

June, 2021 ***** [CURRENT BUILD   22335] *****
           ***** [CURRENT DRIVER 3.2.28] *****
           ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - configuration code modified.

    - Code to detect configuration changes modified.

    - TCPC functions and command modified.

    - Honeypot_ssl connection close modified.

    - New command: tcpa dev | all
      Deallocates the TCB for abandoned connections.

    - whname2ip now only returns local IP addresses, not remotes.

    - DHCPD modified to work with ESP32 devices.

    - HOSTD now ignores ISATAP containers.

    - Updating the Hosts list now executes faster.

    - mDNS and LLMNR support improved.

    - IPPROC now starts correctly on Restart.

    - ARP Q problems corrected.

    - TCP device Q problems corrected.

    - Regmon.c modified.

May, 2021 ***** [CURRENT BUILD   22333] *****
          ***** [CURRENT DRIVER 3.2.28] *****
          ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - Subnet masks now used throughout.

    - Shutdown code for all threads modified.

    - TCP code modified.

    - HONEYPOT code modified

    - DGREAD code fixed.

    - Missing file hp.asp added.

    - Working directory issue fixed.

    - Packets to private IP addresses are now again forwarded to
      Internet gateways.

    - Packets to private IP addresses are now again transmitted

    - Release versions of rcmd.exe and remote.exe included.

    - DNS resolution modified.

    - KODAK.TXT modified.

    - DHCPD.INI modified.

    - Command file monitor.ini added.
      Invoke remotely as: sh monitor.ini

    - New command: tcpa dev | all
      Aborts client device connections unconditionally.

    - HOSTD ignores ISATAP info.

    - Name lookup from private machines now also resolves names on
      Internet-connected interfaces.

    - Netin processes now pass all unmapped UDP broadcasts to the MSTCP.

March, 2021 ***** [CURRENT BUILD   22326] *****
            ***** [CURRENT DRIVER 3.2.28] *****
            ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - DHCPD problem for network masks less than
      fixed. For any network, the maximum number of assignable
      addresses is now always less than 1024.

    - X_DHCPD ni_mask issue fixed.

    - Diagnostics code modified.

    - TCL exec command modified.

    - Flow control mechanisms modified and documented in flow.htm

    - Performance improvements

February, 2021 ***** [CURRENT BUILD   22324] *****
               ***** [CURRENT DRIVER 3.2.28] *****
               ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - Exit function modified to restore Console windows before

    - DNS resolution problem fixed.

    - IPPROC error when routing TCP flows fixed.

    - Various other minor bugs fixed.

    - Driver files updated.

    - Files fb.js and fr.js removed to prevent Windows Defender
      reporting nat32v2.zip as a virus

    - DNS_UTILS no longer returns IP4 answers for IP6 questions.

January, 2021 ***** [CURRENT BUILD   22323] *****
              ***** [CURRENT DRIVER 3.2.26] *****
              ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - IP_IN now again queues packets in the order of arrival.

    - BUGFIX: setgs command corrected.

    - ARP isolation feature removed as it was not effective.

    - Several virtual WiFi modifcations made.

    - BUGFIX: dhcpd command wasn't setting "limit" correctly.

    - Functions SetAdapterFeature and GetAdapterFeature modified.

    - BUGFIX: functions ipgetp and ipputp now honour ni_ipmap and
      ni_pmap settings correctly.

    - New command: isolate. See isolate.htm for details.

    - New command: allow.   See pmap.htm for details.

    - New command: white.   See dnsrd.htm for details.

    - Filters in startup.txt now pass private port 445 traffic
      to NAT32 rather than to the MSTCP. This is required to
      ensure isolation.

    - The SoftAP currently does not stop if one or more clients
      are connected. Perhaps the softap command should force

    - BUGFIX: Several changes made to wnet and hosts commands.

    - BUGFIX: Several thread exit issues fixed.

    - BUGFIX: function name2ip() now tries 2nd name server if
      the first name server fails to resolve a name.

November, 2020 ***** [CURRENT BUILD   22322] *****
               ***** [CURRENT DRIVER 3.2.25] *****
               ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - BUGFIX: pipclose must signal dsem so that the reader always

    - Fast timer is now the default.

    - New commands: setth and setlow. See setth.htm for details.

    - New web pages and transparent images.

    - IP_IN now queues packets according to length. Short packets
      get priority. Three levels (128, 512, 1024).

    - Commands 'route' and 'routes' now support both gateways on
      an interface (main and alt);

    - Commands 'checkhr' and 'checksr' added. They check for the
      existence of a host route or a source route for a given IP
      address, interface and gateway.

October, 2020 ***** [CURRENT BUILD   22320] *****
              ***** [CURRENT DRIVER 3.2.25] *****
              ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - New distribution with updated driver files.

    - Commands setnsn, setgwn and setgs modified. Usage of router1
      and router2 modified; routes deleted and added as needed.

    - BUGFIX: default name servers were not being set.

    - BUGFIX: checkn command now uses the gateway to do a name
              check if a PiHole is in use. This is because the
              PiHole may switch name servers or return cached

    - BUGFIX: Function PiHole(op) in file nat32s.js now checks for
              the PiHole IP address.

    - The GATEWAY daemon for the Primary interface is now started
      in NETSTART, even if a second primary gateway has not (yet)
      been specified.

    - Command 'nethood' updated.

    - Command 'arping' updated.

    - User admin feature updated.

    - Inetin() and pnetin() modified. Sleep times are recorded and
      can be viewed with commands 'nic' and 'ifn'.

    - Help pages updated.

    - Paypal button added for purchasing email support.

September, 2020 ***** [CURRENT BUILD   22319] *****
                ***** [CURRENT DRIVER 3.2.25] *****
                ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - netin functions now call FlushAdapterPacketQueue when buffer
      count is less than 10. Function sleep is no longer called.

    - New command bpdump added.

    - Major changes to message passing mechanism: seperate functions
      for sending an int and a buffer. The buffer is always freed.

    - ARPD modified.

    - BUGFIX: Pipe device modified so that when the reader exits,
      the writer terminates correctly.

    - BUGFIX: Several upnpc bugs fixed.

    - PiHole support added. See set command and nat32s.js.

    - Autoconfig 'l' parameter doesn't add a default route
      but 'L' does.

    - Autoconfig should typicall be 'aDLw' or similar.

    - Autoconfig 'aD' will present the Configuration dialog box that
      can be dismissed with ESC (or Exit) if NAT32 has already been

    - NXDOMAIN response behaviour can now be turned on via the
      setns e5 or e7 (bit 2) command.

    - Note that NXDOMAIN responses are not handled correctly by
      some web browsers. The PiHole also has an option for this
      but the response for blocked names seems best

    - Major changes to ifn_ini: Windows values now no longer have

    - Major changes to x_openvpn so that connections can used either
      gateway 1 or gateway 2.

    - BUGFIX: Either gateway can now be

    - Variables router 1 and router 2 are now independent of Windows
      gateway settings.

    - BUGFIX: DNS resolution for machines on private networks now
      works again.

    - New command: sha256x $phpwd 2 will generate the needed auth
      string in $phauth so that PiHole commands can be executed.

    - Note that there is currently no known way of changing the
      upstream DNS server that PiHole uses. We may want to do this
      when an alternate Internet gateway is being used. Presently,
      we depend on the PiHole detecting a dead DNS address and
      switching to the alternate DNS address automatically.

    - The sockio library now times out TCP connection requests if
      they do not succeed within 2 seconds.

    - BUGFIX: Filter mechanism structure packing added.

July, 2020 ***** [CURRENT BUILD   22317] *****
           ***** [CURRENT DRIVER 3.2.24] *****
           ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - Interface configuration dialog box modified to allow specific
      gateway and DNS server addresses to be added.

    - Interface configuration dialog box now adjusts routes if
      gateways are modified.

    - DNS counters have been modified to increase accuracy.

    - DNS reverse lookups (ip2name) now function correctly.

    - UPNP client commands now accept IP or name argument.

    - Experimental: INETIN, RTADD and NETWRITEA modified to forward
      169.254.x.x traffic.

    - NAT32 no longer hangs on exit when a network adapter is
      disabled or removed.

    - Support for reachability added.

    - Route add command added to startup.txt:

        route add

    - ICMP reachability issues corrected.

    - Several web pages modified.

June, 2020 ***** [CURRENT BUILD   22316] *****
           ***** [CURRENT DRIVER 3.2.24] *****
           ***** [New  HELP2.ZIP   file] *****

    ***** [Always restart NAT32 after updating help files] *****

    The following changes have been made:

    - VLAN support added (experimental). Traffic with a VLAN ID is
      handled by NAT32. All non-matching traffic is forwarded
      transparently. Command 'vlan [ifn [ID]]' is used to specify
      the ID. The default VLAN ID is 0. A future version of the
      WinPkFilter driver will support filtering by VLAN ID.

    - Multicast DNS (mDNS and LLMNR) support improved.

    - Nethood support improved.

    - Bug in HTTPW fixed.

    - Bug in DHCPD fixed. Networks with masks shorter than are now handled correctly.

    - Netcheck now validates connection IP and Mask for all
      interfaces. The value (IP & Mask) must be unique for all
      interfaces. Note that & denotes the bit-wise AND operation.

    - File diag.txt modified.

    - ICMP code modified to support ICMP 3 3 correctly.

    - Detection of QUIC traffic added.

    - An experimental QUIC daemon (udpquic) has been added.
      It responds to QUIC traffic that has been redirected to the

    - The winquic.sys device driver is being examined on Windows 10

    - Port mapping now checks the nexthop address of a packet.
      This will disable the QUIC connection migration 'feature'.
      That feature undermines the use of VPN connections to increase

    - OpenVPN now adds a filter to allow UDP Port 443 traffic to
      an OpenVPN server. The filter does not conflict with a filter
      added to block the QUIC UDP Port 443 traffic. The filter is
      deleted on disconnect.

    - Environment variable "nat32.local" added. It holds the actual
      string to be used for the .local name to be used in name

    - Command 'js dev [func [arg]]' enhanced. It allows scripts in the
      top window of the web page displayed in 'dev' to be executed.
      Script output is written to STDOUT. An argument to the script is
      now optional.

    - Command 'jsf' now requires a flag argument. See js.htm for usage.

    - BHO support removed.

    - Exec command supports a "browser" alias. It is similar to the
      "ie" alias but uses MSEdge instead of Internet Explorer.

    - Note that IE11 is still the embedded browser because a release
      version of the Edge browser object (WebView2) is still not
      available. NAT32 can be started with argument 'b' if no web
      browser is to be embedded.

    - Device driver files updated to Version NDISAPI library
      rebuilt. Install and delete now works correctly.

    - Auto-config code modified. Option "aD" will use an existing
      configuration if the Welcome Dialog is cancelled and the driver
      is already running.

    - No password is required if NAT32 is running in Admin mode.

    - The gateway daemon (GWD) modified to work correctly if no alternate
      gateway is available.

    - Command "checki" modified to work correctly if no alternate
      gateway is available.

    - File diag.txt modified.

    - Name resolution modified (see name2ip.c).

    - Filtering code modified (see setf.c).

    - OpenVPN code modified (see x_openvpn,c).

    - Netcheck code modified (see x_netcheck.c).

    - Interface selection code modified (see x_setis.c).

    - Route timer code modified (see rttimer.c).

    - Calls to name2ip corrected in various shellx commands.

    - New change.txt file.

    - HTTPGET now supports chunked transfers

    - Bug in function uncompress() fixed

May, 2020 ***** [CURRENT BUILD   22314] *****
          ***** [CURRENT DRIVER 3.2.24] *****
          ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - Various minor bug-fixes and improvements.

    - Gateway Monitor Daemon regularly checks status of gateways
      on the Primary Internet interface.

    - Routing-only mode updated to support multiple gateways.

    - DNS server settings detection made more robust.

    - Several new shell commands added. See the updated help
      pages for details.

April, 2020 ***** [CURRENT BUILD   22313] *****
            ***** [CURRENT DRIVER 3.2.20] *****
            ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - Various minor bug-fixes and improvements.

    - Several help pages updated.

March, 2020 ***** [CURRENT BUILD   22312] *****
            ***** [CURRENT DRIVER 3.2.20] *****
            ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - New applet: netstat.exe [ip | name]
      Full details are in backupg.htm.

    - Routing issue fixed in IPPROC Line #1100. Hosts on other
      private networks are now again reachable.

    - The UDPECHO service has been extended to support backup
      gateway failover.

February, 2020 ***** [CURRENT BUILD   22310] *****
               ***** [CURRENT DRIVER 3.2.20] *****
               ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - Trace functionality enhanced.

    - DNS queries for type ANY now supported.

    - Alternate gateway support enhanced.

    - DNS resolution mechanisms enhanced.

    - DNS Test feature enhanced.

    - File startup.txt now calls 'setuc' to set a default
      UPnP interface.

    - File startup.txt now calls 'mdnsx p on' so that LLMNR name
      requests are answered.

    - Command 'checkx ifn.gwn' now returns the external IP address
      of the specified gateway.

    - Fo clients with no source route, NSERVER is used to resolve
      names. This has the side-effect that when an OpenVPN connection
      is in place, name resolution will always be via the DNS server
      of the OpenVPN connection. To modify this behaviour, simply
      set NSERVER to the desired address via the 'setns ip' command.

    - IFNx.INI file format changed. Reconfigure NAT32 to generate
      new ifn.ini files.

January, 2020 ***** [CURRENT BUILD   22309] *****
              ***** [CURRENT DRIVER 3.2.20] *****
              ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - UPNP Client code enhanced.

    - Problem with vsnprintf in release builds fixed.

    - Unix time problem fixed in trace and admin commands.

    - Various FritzBox scripts updated.

    - Embedded browser defaults to loading local pages only.

December, 2019 ***** [CURRENT BUILD   22308] *****
               ***** [CURRENT DRIVER 3.2.20] *****
               ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - NAT32 icon in system tray now changes colour if a DUN
      connection is up or down, even if the connection is not ours.

    - File crontab edited to not run the hosts commands in the

    - TCP port 3389 (RDP) filters modified in startup.txt.

    - Packets to private IP addresses are no longer forwarded to
      Internet gateways.

    - IPPROC modified to call the new rtgeti() function that always
      matches source addresses, even the ones.

    - Various DHCPD helper functions modified so that no GPF occurs
      if the the DHCPD never ran.

    - Reinstated the non-shared private IP address feature.

    - Command setgw1 p forces ALL traffic to use gateway 1 (main).
      Command setgw2 p forces ALL traffic to use gateway 2 (aux).

    - Default search provider changed to StartPage.com.

November, 2019 ***** [CURRENT BUILD   22307] *****
               ***** [CURRENT DRIVER 3.2.20] *****
               ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - OpenVPN support modified to allow a connection to a given
      server even if another machine already has such a connection.

    - Names defined in DHCPD.INI now stick.

    - Command ns now resolves DHCP-assigned names.

    - Commands arpadd and arpdel now resolve DHCP-assigned names.

    - Command setf enhanced. See setf.htm for details.

    - WARNING: The MS-LLTD protocol fails when NAT32 is running.
      The reason for this is unknown.

    - The 'active' thread now no longer spins.

    - NAT32 exit issues fixed.

    - CRON issues fixed.

    - New variables added. See set.htm for details.

    - INT64 now used for gateway counters.

    - Command gwstat now accepts an ifn.gwn argument and clearing
      of counters.

    - Route added for IP address 127.0.0.x mask

    - Command 'xevent pid' added. It can be used to force a thread
      to terminate by setting its exit event (if one exists).

    - Command "if" is now a builtin. This fixed exit and break

    - Command "route alt" fixed for the case that no alternate
      gateway exists.

    - Command "dunupd" added. It causes connect.txt to be executed
      for DUN connections that are in place on startup.

September, 2019 ***** [CURRENT BUILD   22306] *****
                ***** [CURRENT DRIVER 3.2.20] *****
                ***** [New  HELP2.ZIP   file] *****

    The following changes have been made:

    - Several routing modifications made to allow the following:

        - Any machine can request the use of an alternate Internet
          gateway. This includes the MSTCP of the NAT32 machine
          itself. See route.htm for details.

        - OpenVPN connections can now also be established over an
          alternate Internet gateway.

    - Several bugs fixed that caused some HTM pages to malfunction.
      BE SURE to download and unzip the new help2.zip file.

    - TCL parser modified to strip lines starting with # within
      braces (parse.c line #466).

    - OpenVPN setup simplified. See openvpn.htm for details.

    - Var no_sleep modified to not prevent monitors from being
      turned off.

    - Function sbcprintf modified to print in both Console and
      Web window modes.

    - TCP Keepalive code modified.

    - IPPROC source routing code modified.

    - MSTCP routing table changes are now monitored.

August, 2019 ***** [CURRENT BUILD   22304] *****
             ***** [CURRENT DRIVER 3.2.20] *****
             ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - The arpingn command now resolves IPs to names.

    - Special names like nat32.box now resolve even if no name
      server is reachable.

    - File nat32js modified to include an IP address that can
      be used instead of nat32.box in configurations that do
      not have a name server on any NAT32 interface.

    - File change.txt modified to add/delete the default route
      on the Primary interface.

    - Skype Tool support deprecated.

    - A few minor bugs fixed.

July, 2019 ***** [CURRENT BUILD   22302] *****
           ***** [CURRENT DRIVER 3.2.20] *****
           ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - The WinPkFilter driver now supports NdisMobileIP adapters.

    - NAT32 can now share Mobile IP connections.
      See Mobile_IP.txt for more information.

    - A few minor bugs fixed.

June, 2019 ***** [CURRENT BUILD   22301] *****
           ***** [CURRENT DRIVER 3.2.18] *****
           ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - BUGFIX: The NAT32 service failed to start if file nat32.pid
              existed. File nat32.pid (and others) are now always
              deleted on Windows shutdown and restart.

    - New command: route alt [ip | name] [delete]

      Adds a default source route for the specified IP or Name.
      Option 'delete' deletes such a route.
      The command fails if no alternate gateway is available on
      the network of the specified IP or Name.

      DNS requests from the specified machine are redirected to
      the adapter's second name server.

      For test purposes, a new command: setnhf ifn [ip | name]
      has been added. It will block all access to the specified
      IP or Name via the specified ifn.

    - BUGFIX: Command setf was printing an uninitialised field.
              Command setf now checks args[2] (add or delete).

May, 2019 ***** [CURRENT BUILD  22298]  *****
          ***** [CURRENT DRIVER 3.2.18] *****
          ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - IMPORTANT: Reconfiguration is required because the ifnx.ini
      file format has changed.

    - NEW FEATURE: A backup (fallback) interface can now be
      specified. A fallback daemon can be run as: 'startd fallback".
      It monitors the Primary Internet connection and switches
      between it and the backup Internet connection to ensure
      continuous Internet connectivity.

    - NEW FEATURE: A backup (fallback) gateway can now be specified
      for an Internet-connected interface. A fallback daemon can be
      run as: 'startd fallback p.x", where 'p' is the Primary
      interface and 'x' stands for the gateway number (0, 1 or 2)
      that is to be used for fallback. The fallback daemon monitors
      the Primary Internet gateway and switches between it and the
      backup Internet gateway to ensure continuous connectivity.

      This feature has been tested with a Raspberry Pi running the
      ROOter version of OpenWRT. The ROOter supports just about
      every conceivable Mobile Internet device and gives Internet
      connectivity whenever the fallback daemon switches the
      primary gateway to the IP address of the Raspberry Pi.

    - Support for .local names added. This was needed because
      some web browsers have started warning users if an HTTP
      URL is used rather than HTTPS. For local traffic in trusted
      environments, this "feature" can be bypassed by using URLs
      like or http://nat32.local/ or even
      just http://nat32/

    - Support for mDNS and LLMNR modified. See the relevant Help
      pages for details.

    - Pipe problem fixed.

    - Exec commands modified, particularly the execdk and shortcut

    - NAT32 can now switch to a second desktop. This feature could
      be useful for hiding NAT32 windows from the regular user of
      the computer.
      Example: desk aux  # Switches to auxiliary desktop
               desk main # Switches to main desktop
      Note: On the aux desktop, Ctrl-Alt-E switches back to main.

    - NAT32 DHCPD modified:
            New range command
            New max command
            See dhcpd.htm for details.

    - New command: host add | del ip | wname
      This command allows a host (specified by its IP or its Windows
      name) to be added to or deleted from the Windows Host Table.

February, 2019 ***** [CURRENT BUILD  22296]  *****
               ***** [CURRENT DRIVER] *****
               ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - MAJOR: inetin and pnetin sleep for 10 msec when the buffer
      pool nears exhaustion. This modification improves throughput
      dramatically for heavy loads e.g. during speed testing.

    - BUGFIX: arpin_q problem.

    - Several ARP debugging commands and GPQ commands modified.

    - Several pipe modifications made.

    - Shell TCL command now handles unbalanced quotes correctly.

    - BUGFIX: pipes now close correctly.

    - BUGFIX: nested TCL exec commands now work correctly.

    - New shell command: m3u url
      Downloads an m3u URL and extracts the first link.
      See the web radio applet (swrx.htm) for an example.

    - A "Run" menu item now executes the script file specified in
      the 'script' environment variable. Results are displayed in
      a popup window.

    - DHCPD commands that change parameter table values now also
      transfer those values to the interface table.

      NOTE that dhcpd.ini is executed after DHCPD initialisation
      has been done.

January, 2019 ***** [CURRENT BUILD  22294]  *****
              ***** [CURRENT DRIVER] *****
              ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - Tcl grep script corrected

    - Several editor bugs corrected.

    - File fr.js modified to use the IP address of fritz.repeater

    - BUGFIX: SoftAP app now handles rcmd commands correctly.

    - Startup.txt modified so that httpd confirmation is off per

    - Command 'route add' now modifies the gateway when a route is
      added that matches an existing route.

    - NDISAPI library updated for the driver.

    - New command: pcheck.tcl password
      Checks the password against the HIBP database.

    - BUGFIX: Web interface is at 'localhost' when in Winsock Mode.

    - BUGFIX: A crash on exit no longer occurs.

    - BUGFIX: Redirection in the shell was sometimes failing
      because the original device was being closed before the new
      device was set. This caused nested Tcl exec commands to
      fail. An additional fix now closes all redirected devices
      except pipes.

    - Skype Tool rings FritzBox phone on incoming calls.

    - Find box in Web View now works correctly.

    - BUGFIX: Function isVPN() in data.js corrected.

    - BUGFIX: Command 'setmem' now works correctly.

    - Command 'route vpn IP|name' added. The specified host
      will then communicate via a VPN connection only. If the VPN
      connection goes down, such hosts will have local access only
      until the VPN connection is reestablished.

    - A DNS resolution problem solved by attaching .local to
      an SMB name.

    - Command 'dhcpd' now allows a host-specific gateway address
      and host-specific DNS server address to be specified.
      Previously, these values could only be specified per
      interface, not per host. Of cours, the specified host must
      renew its lease for the new settings to take effect.

    - The Interface Selection dialog box now works correctly.

    - Command 'dhcpd ifn ip ...' now allows just the host portion
      of an IP address to be specified (for convenience).

    - Port Mapping Table and Routing Table sizes now default to
      4096 (the maximum). Commands 'set pmsize' and 'set rtsize'
      can be used to limit the table sizes for better performance
      on 'slow' systems.

December, 2018 ***** [CURRENT BUILD  22292]  *****
               ***** [CURRENT DRIVER 3.2.16] *****
               ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - TCP device bug fixes.

    - Stealth mode behaviour modified.

    - Honeypot SSL/TLS support updated.

    - Tcl memory usage modified.

    - IP fragmentation support modified.

    - Pipe device modified.

    - Softap code modified.

    - TCP keepalive support modified.

    - Port mappings for WPF filtered ports no longer added.

    - New variable 'uk2mstcp' added. Command ukmap mstcp | nat32
      now allows unknown incoming traffic to default to MSTCP
      or NAT32. In the latter case, specific uk mappings must be

    - Bug in icunmap() fixed.

October, 2018  ***** [CURRENT BUILD  22290]  *****
               ***** [CURRENT DRIVER 3.2.16] *****
               ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - An SNMP Get command has been added. It can be used to fetch
      VDSL2 speeds from an SNMP agent as follows:

        snmpget   # Max downstream     [kbps]
        snmpget   # Max upstream       [kbps]
        snmpget  # Current downstream [kbps]
        snmpget  # Current upstream   [kbps]

    - NAT32 now exits promptly.

    - Command 'panic' immediately terminates the NAT32 process.

September, 2018  ***** [CURRENT BUILD  22290]  *****
                 ***** [CURRENT DRIVER 3.2.16] *****
                 ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - Calls to TerminateThread now generate a pprintf warning.

    - Hosts command no longer blocks during enumeration.

    - Function addWinHostName is now always interface-aware.

    - Nethood functionality now checks for MAC changes for a
      given name. Name changes for a given MAC were already
      being checked.

    - Nethood add command fixed.

    - Nethood clear command fixed.

    - The pages details.htm and cpanel.htm now allow a target IP
      or Name to be specified. All operations are then performed
      for the target machine.
      Note: use this feature with care!

    - Various minor problems in Winsock Mode fixed.

    - Restart now works reliably.

    - Many web pages updated.

August, 2018  ***** [CURRENT BUILD  22288]  *****
              ***** [CURRENT DRIVER 3.2.16] *****
              ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - All 6 Tcl file mode options now work correctly.

    - A 'camera' variable added. This allows a connected IP
      camera to be displayed when web page 'default.htm' is
      viewed. The program 'cam2web' is recommended as camera

    - FritzBox and FritzRepeater support updated.

    - Predictive ARP feature added for Winsock access.

    - All script?.htm files updated.

    - Commands 'pmapt' and 'pmapu' modified to allow an IP source
      address to be specified.

    - Port-mapped TCP connections are now reset if both SYN flags
      are 0.

    - Command 'arpadd' marks added entries as 'permanent'.
      A gratuitous ARP is broadcast for the added entry.

    - Entries in dhcpd.ini now have permanent ARP entries.

    - Command 'dev' now accepts a device number, dev class or
      device name argument.

    - Command 'dev classes' prints the list of class names.

    - Network domain now defaults to 'local';

    - The DHCPD will now dprint names of unsupported options.

    - Global variables are injected into 'data.js' by the HTTP
      and Honeypot servers.

    - Command 'wintcp' now supports 'state' and 'port' args.

    - Several Homekit variables added. See 'set' command for
      a listing of all variables. These are used when the NAT32
      machine is also running a Homebridge server.

    - Problem with the WinPkFilter wpff command fixed. On 64-bit
      systems, the handle field was incorrect for filters that
      were to apply to all interfaces.

    - Commands 'ns' and 'wns' now handle the 'fbnet' variable

June, 2018  ***** [CURRENT BUILD  22286]  *****
            ***** [CURRENT DRIVER 3.2.16] *****
            ***** [New  HELP2.ZIP  file]  *****

    The following changes have been made:

    - JSON support added.

    - Pipe device updated.

    - FritzBox and FritzRepeater support enhanced.

    - Support for a Raspberry Pi HOSTAPD and display device added.

    - Homekit support added.

    - Resume from sleep behaviour improved.

April, 2018  ***** [CURRENT BUILD  22285] *****
             ***** [CURRENT DRIVER 3.2.8] *****
             ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Selective Sharing of OpenVPN connections implemented.
      Details are in openvpn.htm and the relevant command
      help pages.

    - DHCPD modified: Some systems expect Option 54 to be present
      in a DHCP Ack, even though the DHCP Request did not ask
      for it. The Option 54 is now always returned in the Ack.

March, 2018  ***** [CURRENT BUILD  22284] *****
             ***** [CURRENT DRIVER 3.2.8] *****
             ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Help Pages updated.

    - A new HTTPD access mode has been added. Clients can only
      communicate with the HTTPD if their IP address appears in
      the Network Neighbourhood Table.

    - HTTPD never responds to localhost traffic (

    - HTTPD requires user confirmation for traffic from external

    - Various DHCPD issues fixed.

    - Password checking now controls access to the Console window
      and Quick dialog only.

    - AVM support has been updated for FB 7590 and FR 1750E.

    - UPNP client now shows router stats: upnpc -g

January, 2018  ***** [CURRENT BUILD  22282] *****
               ***** [CURRENT DRIVER 3.2.8] *****
               ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - DNS Resolver Daemon (DNSRD) problems fixed.

    - Admin feature enhanced. (See help page for details)

    - Monitor window problems fixed.

    - Function arpadd() now checks protocol addresses for

    - This command now works: start http://.........

    - Ping command now supports microsecond resolution.

    - The trace window now uses the full screen width.

    - Admin command now adds an IP only if ni_admin is true.

    - Buffer pool names are now listed.

    - Netin threads now sleep if bpool count is low.

    - Help now also supports .html files.

    - DHCPD now also checks the nethood table.

December, 2017  ***** [CURRENT BUILD  22281] *****
                ***** [CURRENT DRIVER 3.2.8] *****
                ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Network neighborhood support enhanced.

    - Nethood command now displays the Network Neighborhood for
      ALL interfaces (does NOT require SMBv1 support).

    - Nethood update command now displays MSTSC or RDP capability
      for all discovered machines.

    - Password checking enhanced.

    - OpenVPN support now works in User Mode.

    - Numerous web pages updated.

    - Captive Portal support added.

    - Skype support updated.

    - DHCPD bug fixed (Code54 was being appended twice in ACK)

May, 2017  ***** [CURRENT BUILD  22276] *****
           ***** [CURRENT DRIVER 3.2.7] *****
           ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - SMB support enhanced. The HOSTD is now started and forwards
      all traffic transparently, except for NetBios Name Queries,
      which it answers.

    - CRONTAB modified.

    - STARTUP.TXT modified.

    - WINDOWS 10 interface configuration modified to show all
      adapters correctly.

    - Several TCL bugs fixed.

    - SNMP support improved

    - WUPNPD updated. Device home page is now cpanel.htm.

    - New command: ssdp notify

    - An OpenVPN-related bug corrected. This was causing NAT32 to
      hang in cases where no TAP Adapter was available.

    - New command: setwns [ips]
      Sets the Name server for the current "best" Windows interface.
      NOTE: This command requires privilege.

April, 2017  ***** [CURRENT BUILD  22274] *****
             ***** [CURRENT DRIVER 3.2.7] *****
             ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - All SNMP commands corrected (snmp, wsnmp, tcl snmp).

    - Tcl code now uses C malloc/free instead of xmalloc/xfree.

    - Find box in nav.htm now does a case-insensitive search in
      all NAT32v2/htm/*.htm files.

    - Command pdump usage message bug fixed.

    - Command 'find' modified to search settings variables.

    - Command 'webcmd' modified to use correct browser window.

    - Problem with GetAdaptersW fixed.

    - name2ip now resolves nat32.box correctly in WinSock mode.

    - x_set now honours -s correctly.

    - xmalloc use revised.

    - HTTPD can now use other directories (see htdir setting).

    - iPhone tethering now supported.

    - Monitor 'find' command improved.

    - WinPkFilter now restores filters correctly for all interfaces
      on resume from sleep.

    - RegMon and DevMon code modified.

    - Email now sent if any log file limit is reached.

    - Several web pages modified.

    - Several minor bug-fixes.

    - Several minor improvements.

May, 2017  ***** [CURRENT BUILD  22270] *****
           ***** [CURRENT DRIVER 3.2.7] *****
           ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - File change.txt modified so that netcheck is only done when
      an interface comes up (not down).

    - File rss.tcl modified so that STDOUT is the current window.

    - File startup.txt now opens the quick dialog later.

    - Ipproc now forwards MSTCP packets to the network.

    - Winute.c modified so that NAT32 settings are not updated if
      the interface's Windows settings are not yet valid.

    - Special name: nat32.vpn added. This allows DNS Analyser
      settings to be adjusted via the cpanel.htm page for OpenVPN

    - The quick dialog now has a cPanel icon. The Chat feature has
      been removed.

    - File HOSTS.INI has been updated.

    - Monitor window modified.

    - Shell commands that use xmalloc now explicitly call xfree on
      return. This prevents memory leaks if the command functions
      are called within a thread.

    - Default check level and block level for private interfaces
      now set to "none". Default levels for VPN interfaces remains
      at "all". Use the cpanel.htm page to modify these levels.

    - Several minor bug-fixes.

    - Several minor improvements.

February, 2017  ***** [CURRENT BUILD  22268] *****
                ***** [CURRENT DRIVER 3.2.7] *****
                ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - WebSocket support has been added. This allows OpenVPN status
      updates to be sent as they occur to any web client that has
      an open WebSocket to the NAT32 HTTPD.

    - The cpanel.htm page has been improved to allow Microsoft
      blocks (as in ms.txt) and Apple blocks (as in ios.txt) to be
      toggled on or off individually. The page now uses a WebSocket
      to display status updates or monitor updates.

    - When file nat32.log file size exceeds the value set in variable
      'mls', it is archived as yyyy.mm.dd.nat32.log.zip and a new
      nat32.log is created.

    - The email command now has the syntax: email title file to
      The 'from 'field is set to the value in variable 'email' and
      the mail is sent via the server set in variable 'smtps'.

    - WLAN connect and disconnect commands now work again.

    - DHCPD bug fixed. This bug was preventing new devices from
      obtaining an IP address in some cases.

    - Several minor bug-fixes.

    - Several minor improvements.

December, 2016  ***** [CURRENT BUILD  22262] *****
                ***** [CURRENT DRIVER 3.2.7] *****
                ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Several important bug-fixes.

    - Several minor improvements.

October, 2016  ***** [CURRENT BUILD  22260] *****
               ***** [CURRENT DRIVER 3.2.7] *****
               ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Several important bug-fixes.

    - Several minor improvements.

    - Fixed several RAS configuration issues.

September, 2016  ***** [CURRENT BUILD  22259] *****
                 ***** [CURRENT DRIVER 3.2.7] *****
                 ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Several important bug-fixes.

    - More Windows 10 Version 1607 compatibility fixes.

    - Windows10.txt updated

    - BUGFIX: If a DNS response has no Answer Count, the response
      must not be dropped, because Windows assumes the DNS server
      is down and tries all future queries via NetBios for several

    - HOSTS.INI format now has a single space as separator instead
      of 3 spaces.

August, 2016  ***** [CURRENT BUILD  22256] *****
              ***** [CURRENT DRIVER 3.2.7] *****
              ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Several minor bug-fixes.

    - Windows 10 Version 1607 fixes applied.

July, 2016  ***** [CURRENT BUILD  22254] *****
            ***** [CURRENT DRIVER 3.2.7] *****
            ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - several web pages updated.

    - Full integrated OpenVPN support added.

    - ICMP support modified.

    - Setting command "set" now supports string search.

      Example: 'set find wlan' prints all variables containing
      'wlan' in their name or description.

    - several minor bugs fixed.

    - FritzBox support modified.

    - Restart issues fixed.

    - Command 'jsb [filename]' added.
      This command allows Javascript to be specified for
      execution by the Honeypot (useful for test purposes).

    - Fixed UPnP client support. UPnP SEARCH requests are now
      sent via the 'best' interface. Help page updated.

    - DHCPD modified to deal with cheap and nasty clients that
      use fake Ethernet addresses. Some IP cameras even use the
      address 00-00-00-00-00-01.

June, 2016  ***** [CURRENT BUILD  22252] *****
            ***** [CURRENT DRIVER 3.2.7] *****
            ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - The Comer and Stevens TCP code has been modified to fix a
      number of problems.

    - The honeypot daemon has been modified to allow up to Ntcp
      simultaneous connections.

    - INETIN and PNETIN modified to correctly respond to incoming
      TCP connections at

    - RASIN modified to correctly handle PPPoE traffic.

    - Softap reset command modified.

    - BUGFIX: Function get_connections().

May, 2016  ***** [CURRENT BUILD  22250] *****
           ***** [CURRENT DRIVER 3.2.7] *****
           ***** [New  HELP2.ZIP  file] *****

    The following changes have been made:

    - Console windows now scroll the caret line into view.

    - DNS Resolver now returns a TTL of 5 for black-listed names.

    - DNS Resolver behaviour modified for private machines.

    - DNS Resolver now always returns a computed address (typically
      the honeypot address) for all names it resolves.

    - File DHCPD.INI modified to assign NAT32 as the gateway.

    - New command: wintcp test [port]

    - DNS Resolver modified (major changes).

    - Monitor exit bug fixed.

    - Various bug-fixes in TCP functions and readln2() used by

    - Honeypot connections now reset because some clients don't
      honour close() as they should.

    - Function check_long(name, ...) was returning an error for
      names containing underscores. This could be an issue in the
      Windows DnsValidateName() function.

    - Added footprintdns to default black-list.

    - Valid length of a DNS component is now < 32.

    - Functions xmalloc() and getmem() no longer warn or panic
      if no memory is available. They just return 0 and require
      that the caller handles the issue.

    - Memory leak in create() fixed.

    - New command: setgw ifn [ip]

      - Adds a default route for the specified interface.
      - Determines the gateway from the MSTCP or the MIB.
      - Will not overwrite an existing gateway.

    - Hang on exit because of scrolling issue fixed.

    - OpenVPN support modified.

      - The route copy command was modified to accept an additional
        ifn argument.

      - IPPROC now does the needed route copy when the first packet
        for the Internet is received, and a TAP interface is in use.

    - New command: tap [open | close | attach | detach]

      - works only if no other process has opened the TAP adapter.

    - CRON @hourly bug fixed.

April, 2016  ***** [CURRENT BUILD  22248] *****
             ***** [CURRENT DRIVER 3.2.7] *****
             ***** [New  HELP2.ZIP  file] *****

      The following changes have been made:

    - New WinPkFilter driver with enhanced performance added.

    - DHCPD Server improved.

    - DHCPD dhcpd.ini script now runs interface-specific commands.

    - DNS resolver improved.

    - Control Panel web page added (cpanel.htm) to allow DNS checking
      options to be modified.

    - Windows Power Broadcast handler improved.

    - Shell "more" command improved.

    - Shell "unwind" command added. This allows for easier script

    - Environment variable "shdbg" added for script debugging.

    - Shell "if" command now supports the "=" operator.

    - Shell "if" command now supports more "ifn.x" options.

    - Shell "echov" command now supports $ substitution.

    - Multi-monitor support added.

    - FritzBox scripts updated to work under the current FritzOS.

    - The rcmd.exe and remote.exe applications have been updated.

    - DNS checks now call the Windows DnsValidateName function.

    - RAS Client and Server support for Windows 10 added.

    - Problems with adapter index corrected.

    - Windows DHCP settings for an interface are now ignored.

    - RasDialDlg removed.

    - For fixed IP configurations, use NAT32's IP if MSTCP IP is 0


January, 2016  ***** [CURRENT BUILD  22236] *****
               ***** [CURRENT DRIVER 3.2.4] *****
               ***** [New  HELP2.ZIP  file] *****

    25  Auto-configuration code arguments:

            nat32.exe aDlwv

        'a' indicates auto-configuration
        'D' indicates install driver if needed ('d' for uninstall)
        'l' indicates include a LAN adapter
        'w' indicates include WiFi adapters
        'v' indicates include Virtual WiFi adapters

        Web page net.htm shows traffic and DHCP details.

    23  New version of rcmd.exe.
        New version of remote.exe.
        New version of SoftAP.exe.

    13  Autocfg.log output modified.

        New command: itest [idx]

        With no argument, the command prints MIB_IF_ROW2 details
        for all interfaces known to the WinPkFilter driver.
        Otherwise, details for the interface specified by "idx"
        are displayed. Note that "idx" is the Windows Iphlpapi
        index that is shown in the interface list printed by the
        Windows "route print" command.

        Diag.txt now includes itest output and autocfg output.

    11  Auto-configuration code modified to accept the following

            nat32.exe alwv

        'a' indicates auto-configuration
        'l' indicates include a LAN adapter
        'w' indicates include WiFi adapters
        'v' indicates include Virtual WiFi adapters

        Configuration details are written to file autocfg.log

     7  Auto-configuration code modified to detect WiFi adapters
        by their Windows media type value (0x10 for WiFi).

        Auto-configuration code modified to update Windows TCP/IP
        settings before writing the ifn.ini files.

        Auto-configuration code modified to accept the following

            nat32.exe awvr

        'a' indicates auto-configuration
        'w' indicates include WiFi adapters
        'v' indicates include Virtual WiFi adapters
        'r' indicates include the RAS Server and 2 clients.

     5  Auto-configuration code modifed to detect the secondary
        adapter more reliably.

     4  NEW FEATURE: NAT32.EXE has a new auto-configure argument.
        When started as: nat32 a
        auto-configuration code will run and new nat32.ini and
        ifn.ini files will be generated, unless they already
        exist, in which case they will be parsed and executed
        in the normal way.

December, 2015  ***** [CURRENT BUILD  22236] *****
                ***** [CURRENT DRIVER 3.2.4] *****
                ***** [New HELP2.ZIP file]   *****

    31  MAJOR CHANGES: DHCPD modified to correctly initialize for
        interfaces that are not yet configured.

        DHCPD reset modified so that static entries added via
        user.txt (or similar) are preserved.

        DHCPD reset now correctly detects state changes (IP -> 0
        and 0 -> IP).

        The HTTPD now serves content in a way that allows IE11
        to display the output of shell commands without delay.
        Note that this feature depends on undocumented behaviour
        of IE11.

        The softap shell command now supports additional options.

        Inetin modified to forward MSTCP traffic for local
        destinations without mapping.

        DNS client checks now default to "all" for clients on
        private networks and to "none" for clients on Internet
        connected networks, unless such clients are configured
        by the NAT32 DHCPD, in which case the check level as
        specified in the static entries list applies.

    28  MAJOR CHANGE: DNS client checking now defaults to OFF for
        Internet interfaces and ON for private interfaces.

    21  MINOR CHANGE: SoftAP is turned off before sleep.

        MINOR CHANGE: Function winute() modified to not suggest
        an IP address for unconfigured private network adapters.

        MINOR CHANGE: Command webstat (and its webpage) updated.

    18  MINOR CHANGE: For FritzBox users, the DNS functions now
        recognize the special name "fritz.repeater".

        MINOR CHANGE: The embedded browser can now block all
        frames on a web page if the Frames option in the Window
        menu is unchecked.

    16  BUGFIX: Function tcplisten() no longer resets incoming
        connection requests if no control block is available.

        MINOR CHANGE: Function vsprintfd() now uses the length
        returned by vcsprintf().

    14  NEW FEATURE: An auto-configuration utility (config.exe) is
        now available for configuring NAT32 to run as a Software
        Access Point. Details are in softapcfg.htm.

    12  BUGFIX: Help command was faulting in WINSOCK mode.

    11  DHCPD function dhcp_arp() in request.c modified to wait
        for 2000 msec for a response. This gives WiFi devices
        ample time to respond.

    10  DHCPD modified further. Tested with Windows, IOS and
        Android clients.

     9  Command softap() modified to use Wlan API functions.

        DHCPD modified to correct various problems.
        Changes made in discover.c and request.c.

     6  NEW FUNCTIONALITY: Cron now supports @resume lines in the
        crontab. This allows the SoftAP to be started when the
        machine resumes after sleep.

        Sample crontab entries are:

        @reboot softap on   # At reboot, turn on the SoftAP
        @resume softap on   # On resume, turn on the SoftAP

        NOTE: The "softap on" command requires privilege.
        It will work silently when NAT32 runs as a service, but
        it will otherwise prompt for permission if User Account
        Control is on (the default).

November, 2015  ***** [CURRENT BUILD  22234] *****
                ***** [CURRENT DRIVER 3.2.4] *****
                ***** [New HELP2.ZIP file]   *****

    29  MAJOR CHANGE: The dhcpd now checks for existing use of an
        about to be assigned IP address more rigorously. The ARP
        case is first checked and an ARP request is then broadcast.
        If the address resolves, it means it is in use and will not
        be assigned.

    28  MINOR CHANGES: honeyb lengths checked more rigorously.

        File change.txt now deletes the ARP entry.

        The pnetin thread now passes ARP Requests to the MSTCP
        and to NAT32's ARP Input thread.

    27  NEW COMMAND: Command 'startp' is identical to 'start'
        except that only STDIO devices are inherited from the
        parent. Use startp to start threads from script files.

    25  MINOR CHANGE: The wupnpd modified to not run on the
        RAS Server interface.

    24  BUGFIX: The DNS resolver was returning the incorrect IP
                address for names in the 'local' list.

    23  BUGFIX: wlan command was not displaying output.

        BUGFIX: unshared address mode for both Internet-connected
                and private networks now works correctly.
                Changes in ipget() and map_port().

        BUGFIX: Function printfs() modified.

    18  NEW FEATURE: The following admin commands have been added:

        adminlf [file]      # default is login.htm
        admingf [file]      # default is good.htm
        adminbf [file]      # default is bad.htm

        adminac ifn [access_code] # default is "Accepted"

        See the login1.htm file for an example.

    16  NEW FEATURE: Environment variable "userid" added. When 1,
        admin checks require unique User IDs. When 0, the same
        User ID can be used for multiple machines.

    13  NEW FEATURE: The dhcpd command now accepts a 5th argument
        that specifies the level of DNS checking to be applied to
        requests from the specified host.
        Allowed values are:
            "all"   (all checks done)
            "hosts" (only host checks done)
            "none"  (no checks done).

    12  DNSD privilege mechanism enhanced. The DNSD command now
        understands the checking levels: all, hosts, none.

        Command "set" now accepts "" or 0 for IP string vars.

        Shell now allows empty args (e.g. "").

        Function copy_routes() now uses the Windows metric when
        adding RIP-advertised routes.

     8  File nat32.js modified.

        File script/app: Lines can begin with a # (Comment)

        The dnsd command now allows a security level to be set
        for a specified host IP address. Levels are as follows:

            0   Do ALL name checks (the default)
            1   Do hosts.ini checks only
            9   Do NO checks at all

        Global flag "dnsc" added. Values are as above and apply
        to all clients that have no entry in the DNS Client table.

October, 2015  ***** [CURRENT BUILD  22232] *****
               ***** [CURRENT DRIVER 3.2.4] *****

    22  Minor Changes:

        Function p32open() was calling getnam() instead of
        getpname() in error messages.

        Minor error in unixutil() line #90 corrected.

        Minor error in in x_log.c line #19 corrected.

        The DHCPD now honors a specified offset only for DISCOVERs
        with no code 50 IP address.

        Default DHCPD lease duration is again 7 days.

        BUGFIX: The buffer size used by the browser devices has
        been increased to 8*64K (webinit.c line #35).
        The same increase was done in edit.c line #521.

    13  Minor Updates:

        Minor changes in wupnpd.

        NEW FEATURE: Command htest now accepts an argument
        specifying how many times a name should be looked up.
        This gives more accurate time estimates for the lookup.

        NEW FEATURE: The arping command now resolves Vendor IDs
        for MAC addresses, if a file mac.txt or mac.ini exists.
        The supplied mac.ini file is based on the manuf file
        distributed with Wireshark.

        ***** IMPORTANT NOTE for OpenVPN users *****

        Some versions of the TAP-WIN32 driver on some platforms
        were causing NAT32 exit to fail if the adapter was set to
        report its Media Status as Always Connected rather than as
        Application Controlled.

     6  Minor Updates:

        A black-list entry containing a ^ character must be in

        Udptime server fixed.

        Udpdtime server added (UDP Daytime Service).

        Default DHCPD lease duration is now 1 day (86400 sec).

        Monitor dialog box modified to allow clearing of the
        entire list.

        Various web pages updated.

September, 2015  ***** [CURRENT BUILD  22232] *****
                 ***** [CURRENT DRIVER 3.2.3] *****

    29  NEW FEATURE: The DNSRD now treats black-listed names that
        start with ^ differently. A strcmp() is done instead of a
        strstr() in this case.

        BUGFIX: The rasin thread now discards incoming packets if
        the number of buffers in the pool reaches 10.

    28  NEW FEATURE: The DNSRD now checks for long DNS labels and
        blocks names with a starting label longer than dnsl bytes.
        The dnsl variable is initially 40 bytes and has a maximum
        value of 63.

    26  BUGFIX: DHCPD modified to mark a declined entry as
        unavailable for 60 sec rather than just 10 sec. This fixed
        the duplicate address problem.

    24  BUGFIX: DHCPD modified to offer a different address each
        time a particular address is declined.

    20  MODIFIED: Connections can now be dialed via a web page.
        RasDial() is now used rather than RasDialDlg().

        MODIFIED: DHCPD now always broadcasts OFFERs and ACKs.
        This was needed because some clients do not set flags

        MODIFIED: Function log() now prints more diagnostic
        information if a log file can't be opened.

    18  BUGFIX: WINIO modified to fix resizing bugs.

    17  DHCPD modified as follows:
        Unicast behaviour changed, NACK behaviour changed.
        Function request() no longer calls arp_send() to check
        the requested IP.

    12  NEW FEATURE: The DNS lookup functions now check the WHOST
        table. The DHCPD now adds an entry to that table after
        sending an ACK to a REQUEST. This fix is particularly
        useful for LINUX-based devices.

     9  Various string functions modified to ensure VS2015
        compatibility. Note the sprintfx.cpp and vsprntfd.c

     8  BUGFIX: The DHCPD now adds an ARP entry before sending an
                OFFER, ACK or NACK. This allows devices that do
                not set the BROADCAST flag in DISCOVER and REQUEST
                packets to work correctly.

        BUGFIX: Function inetin() now passes mapped packets to
                NAT32 regardless of source, if a mapping exists.

     7  BUGFIX: Portmap send_ack() error fixed.
                An ARP request for IP destination instead of
                IP nexthop was being sent.

        BUGFIX: Honeypot serve_real_content() fixed.
                The request length is now checked.

        BUGFIX: See all the 5.9.2015 notes relating to udpsend(),
                ipsend, and their callers.

     4  NEW FEATURE: The httpd_proxy environment variable now
        allows (1) or diallows (0) HTTPD proxy behaviour.

     3  BUGFIX: DHCPD was sometimes not responding to request.

     2  A new WinPkFilter Driver Version 3.2.4 is now available.

August, 2015  ***** [CURRENT BUILD  22232] *****
              ***** [CURRENT DRIVER 3.2.3] *****

    31  MODIFICATION: The dhcp command has been renamed to dhcpd.

    30  Error in nav.css fixed.

    28  BUGFIX: TCL: Several minor file I/O errors corrected.

    26  NEW FEATURE: arping command added.

            Usage: arping ifn [IP | MAC]

        The command is used to obtain a list of all machines on a
        network (arping ifn) or to "ping" a machine by IP address
        or MAC address.

        CRON now re-syncs when the machine resumes from sleep.

    23  NEW FEATURE: mechanism for overriding DHCP offers from
        external DHCP servers modified.

    21  NEW FEATURE: Command 'dhcpc ifn test' gathers responses for
        2 seconds. It thus detects all DHCP servers that have sent
        an offer during that interval.

        File 'crontab' detects external DHCP servers every minute.

        NOTE: If the DHCPD is set to static mode on an interface,
        then stations not in the reserved list will never be
        initialised if no external DHCP server is active.

    19  NEW FEATURE: mechanism for overriding DHCP offers from
        external servers improved.

    16  BUGFIX: several minor DHCPD bugs fixed.

    15  NEW FEATURE: Honeypot now honors FILE and CMD requests.

    14  BUGFIX: Port 137 lookups for "wpad" now honored.

    13  BUGFIX: UDP echo command was sending to broadcast address
        if name resolution failed.

        NEW FEATURE: RDP and SMB traffic is now mapped directly to
        the MSTCP by the driver. This greatly increases performance
        for local traffic.

    12  NEW FEATURE: The winset command can now be used to start
        the Windows Firewall Control Panel applet.

    11  CHANGE: The ICF code now no longer defaults to ON.

    10  NEW FEATURE: The honeypots, DHCP server and HTTP servers
        are now started via startup.txt only.

     9  NEW FEATURE: The DHCPD now supports configuration of MSTCP
        interfaces. A new dialog box asks the user for an IP address
        and Mask to be used on the interface. In order to support
        DHCP renew requests, the DHCPD reports the fixed IP address
        x.x.x.232 so that such requests actually make it down to
        the NDIS layer. That IP address is pingable from other

     8  BUGFIX: Error in ReadPostData() corrected. This error was
                causing NAT32 to exit if WUPNPD received a command.

     7  WSUPNPD exception handling added.

     6  BUGFIX: WUPNPD buffer size increased.

     4  BUGFIX: HTTPW now uses a larger reply buffer for DNS

     3  BUGFIX: HTTPD POST Request now works correctly.

July, 2015  ***** [CURRENT BUILD  22230] *****
            ***** [CURRENT DRIVER 3.2.3] *****

    31  BUGFIX: various buffer issues in the HTTPD fixed.
        BUGFIX: additional sanity checks added to the TCP code.
        BUGFIX: honeypot_ssl was not closing connections because
                read() calls were blocking.
        BUGFIX: Function tcpwrite() was sometimes writing too much

    25  BUGFIX: termination when additional shells are running.
        BUGFIX: tcpsend() error when no data needs to be sent.
        BUGFIX: buffer length error in mwrite() and monitord().

    22  Several bugfixes and improvements, including:

            Winsock WUPNPD improved (see upnpd.htm).
            New command setu added  (see upnpd.htm).
            WUPNPD now started on Secondary interface in startup.txt
            NAT32.EXE flags modified. Flag "h" now indicates
                "No HOSTS checking"
            Flag "p" now indicates "give network I/O priority".
            FritzBox and FritzRepeater script files modified.
            Default stack size increased.

    15  BUGFIX: Fixed potential GPF in pmain.c

        Various other minor issues fixed.

    12  BUGFIX: TCP keepalive now works correctly.

     6  Minor changes in how winio.c handles change between web
        mode and standard mode.

     4  Many changes made, particularly in memory allocation in
        several functions.

        Most (but not all) printf variants now use xmalloc().

        The minimum stack size is now 16K rather than 4K.

        The WinPkFilter 3.2.3 is now installed per default.

        BUGFIX: The NSERVER string is now no longer sometimes
        falsely set.

June, 2015  ***** [CURRENT BUILD  22228] *****
            ***** [CURRENT DRIVER 3.2.x] *****

    15  This is the last build that will run on Windows XP.

        BUGFIX: Function wlogin() modified to close startup.txt
        once it's execution has completed.

        Several commands modified to interpret "all" as all

     9  BUGFIX: File change.txt now sets interface selection
        algorithm to 'main'.

        NEW COMMAND: netcheck displays important network settings.

     8  IMPROVEMENT: DNS resolver now checks Windows notion of a
        name server address before resorting to OpenDNS.

        BUGFIX: Shutdown command now clears no_sleep before
        calling ExitWindowsEx().

        BUGFIX: Exit flag is now set when a network input thread
        is forcefully terminated (e.g. via a netstop command).

     6  BUGFIX: IPPROC minor DNS modification.

     5  BUGFIX: The NETOUT thread was sometimes terminating
        prematurely. This happened whenever its semaphore was
        signalled and the ouput queue had been emptied in the
        interim. Changes in netout(), netwriteq() and slowtimer().

     4  Major changes to how DNS is used and detected. Nsdetect
        is no longer used, as it allows any private machine to
        change DNS Server settings within NAT32. The mechanism
        is still in place but no longer turned on in startup.txt.

     3  Several web page improvements and enhancements.

        Winio() now displays web pages by running x_web() and
        x_webf() in a thread rather than via a function call.

May, 2015  ***** [CURRENT BUILD  22228] *****
           ***** [CURRENT DRIVER 3.2.x] *****

    29  SoftAP.exe major change: Stop button now forces a stop.
        SoftAP.exe minor changes: debug output removed, status info
        now updates correctly.

    25  Admin.exe modified to start child processes without
        inherited handles. This means that such processes will no
        longer prevent NAT32 from terminating if they are still
        active at the time.

        Support for a second Windows ICS magic address added.

    24  NEW FEATURE: Throttling added. See setf.htm for details.

        BUGFIX: WiFi and Virtual WiFi adapters now recognised
        correctly on Windows 8 and higher.

    23  NEW COMMAND: arpoff ip | name [ifn]
        This command modifies the state of the specified ARP entry
        to "refuse". Thereafter, traffic to the address will have
        an invalid Ethernet destination address causing such
        traffic to be ignored by the receiver. This action can be
        reversed with an arpon command with the same syntax.
        This feature is useful for blocking traffic at the MAC
        level rather than at the IP level.

    22  Startup.txt modified as follows:

        1. The setis command is now: setis main
        2. The no_sleep variable is now set to 1
        3. Command: "setnsi p" was added to ensure that the main
           DNS server is used per default.

        When running as a service, a 20-sec startup delay has been

        Various kprintf functions were modified so that they work
        correctly when NAT32 runs as a service. If kprintf2 is
        ever called, the caller blocks until Ok or Cancel is clicked
        on the xlog.htm page.

        CAUTION: kprintf2 is called from the kecho command. If that
        command is ever used, BE SURE to display the log buffer in
        a browser so that Ok or Cancel can be clicked.

        A new certificate for the WinPkFilter driver was added. The
        original certificate had expired.

    21  MINOR CHANGE: ARP cache size increased.

        NEW FEATURE: WiFi and Virtual WiFi detection added. New
        help pages explain the feature.

        RIP modified so that rip udates are never sent on interfaces
        that are configured, but not in use.

    19  MAJOR CHANGE: The code that handles adapter configuration
        changes and DHCPD changes has been extensively modified.
        The file 'change.txt' has also been modified and the old
        version should no longer be used.

        BUGFIX: All netin functions have been modified to correct
        a DHCP Renew problem.

        NEW FEATURE: The SoftAP.exe program has been enhanced.

    18  Kernel modification: The thread wrapper now checks for an
        unreleased Critical Section and releases it if necessary.

    17  BUGFIX: dstat  command modified (ARP CS issue)
        BUGFIX: eth2ip command modified (ifn arg added)

    15  MINOR CHANGE: Service configuration improved.

    14  MAJOR CHANGE: A problem was occurring on networks that are
        connected to the Internet via routers that have multiple
        private IP addresses. NAT32's inetin() thread was dropping
        incoming packets that had a MAC source address that did
        not match that of the configured gateway.

    13  NEW COMMAND: "dstat ea" converts the specified Ethernet
        Address to an IP address and name (if known).

        The Monitor window is now preserved across restarts. This
        means that decho the and mecho commands (which both call
        dprintf to display output in the monitor windos) can now
        be used at any time.

        Various help texts in dialog boxes updated.

    10  Unsolicited incomimg ICMP traffic is now passed to NAT32
        for processing rather than to the MSTCP. This means that
        pings will work even if the Windows Firewall is blocking
        ICMP traffic.

        BUGFIX: Problem with shell exit after a restart fixed.

     9  BUGFIX: wpad dns now works correctly.

        Softap.exe notification handling improved.

        Several htm pages updated.

     8  BUGFIX: Function sets() line #47.

     7  BUGFIX: Function inetin() now routes packets received from
        the MSTCP that are addressed to a different local network.
        Packets from the MSTCP for addresses on the same network
        are written directly.

        BUGFIX: The DHCPD reset command was setting the nserver to instead on nif[ifn].ni_ip.

     4  Command config no longer writes to logfile unless a debug
        argument is specified.

     3  The GPF Dialog box now works correctly for all options.
        A gpf command is available for testing the GPF handler.
        Full details are in file gpf.htm.

     2  NEW COMMAND: The wpad command can now be used to configure
        the wpad features and to turn wpad support on or off.
        Full details are in file wpad.htm.

     1  NEW FEATURE: The DNSRD now resolves names containing
        wpad.domain to NAT32's IP address. This causes a web
        client to send a GET request for file wpad.dat to NAT32,
        which then responds with the contents of file proxy.pac
        that is located in the NAT32v2 HTM directory. A sample
        proxy.pac file is included, but it should be edited as
        needed. The sample proxy.pac redirects all traffic to
        the NAT32 HTTPD at port 8080.

April, 2015  ***** [CURRENT BUILD  22225] *****
             ***** [CURRENT DRIVER 3.2.2] *****

    30  Various HTML pages updated.

        The "su" command now always executes admin.exe, even on
        systems without UAC enabled.

    26  Build 22225 created from the Build 22224 codebase.

        Minimum platform requirement is Windows 7 (Server 2008 R2).