<!-- Link to source file download -->
Download source files - 8 Kb
<!-- Link to demo file download -->
Executable - 7 Kb
<!-- Add the rest of your HTML here -->
How to change TCP/IP network settings remotely on a bare bone system?
- Embedded NT4.0 machine, with minimal OS configuration.
- No keyboard (NULL keyboard driver), no screen (NULL video driver).
- Only a network connection can be used to reach the Embedded machine.
- How do we change the computer and network host name?
- How do we choose between the usage of DHCP or a static IP address?
- How do we change the static IP address?
- Connect with a tool like vnc, pc-anywhere, … change the network settings with the
control panel. (But a bare bone system does not have a control panel).
- Connect with regedt32.exe (or another registry editor) remotely to the Embedded machine
and change all the necessary registry entries. (Not a very good solution to use in production
and what happens when you want to change something in the field?)
- Use IPConfig.exe (which can be found in the NT resource kit but it only handles part of
the required functionality)
- Write your own program to manipulate the registry remotely.
By using the information provided by the CodeGuru article "Change IP Address and HostName of NT machine" by Massimo Negroni and the MSDN article Q194407, together with the excellent Registry API wrapper classes of Len Holgate (http://www.codeproject.com/system/cregistrykey.asp), I wrote a little Win32 command line program to change the mentioned registry settings. A reboot is required after the changes.
(If somebody knows of a way to change an IP address without a reboot on NT4, let me know)
When should you use it?
If the following sentences give a complete description of your personality then use use it!
- I am a command line freak.
- I need to program for Embedded NT 4.0
- I like to live dangerously
- I am a sys admin who wants to change static IP addresses across the network for Target NT machines that only have one (1!) network card.
Like with all registry manipulations, you should make a backup of the registry before attempting to change it. Believe me, whilst debugging this little program I sure messed up a system registry or two…
Use at your own risk. (NB: that means first test it for your specific network configuration on a ‘test’ machine).
The most important Registry keys to use and/or modify are:
- HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards\\1
- HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\(network card name)\\Parameters\\TCPIP
- Download Len Holgate’s Registry API wrapper source
- Create a Win32 Multithreaded DLL Console project an put Main.cpp, NWConnectionSettings.h and NWConnectionSettings.cpp together with the Registry API wrapper classes inside the same directory (and project).
- If no command line parameter is supplied, the settings of the local computer are retrieved.
- To retrieve and change settings of a remote Network computer, specify the network computer name as parameter.
- Administrator Privileges are required for the program to function properly.
- Intended for use on NT 4.0 or NT Embedded 4.0
Posted for all struggling Embedded NT dudes.
Gert Boddaert is an experienced embedded software architect and driver developer who worked for companies such as Agfa Gevaert, KBC, Xircom, Intel, Niko, (Thomson) Technicolor, Punch Powertrain, Fifthplay, Cisco and Barco. For more obscure details, please take a look at his LinkedIn profile. Anyway, he started out as a Commercial Engineer – option “Management Informatics”, but was converted to the code-for-food religion by sheer luck. After writing higher level software for a few years, he descended to the lower levels of software, and eventually landed on the bottom of embedded hell… and apparently still likes it down there.
His favourite motto: “Think hard, experiment and prototype, think again, write (easy and maintainable) code”,
favourite quote: “If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.” – by Red Adair,
I can be contacted for real-time embedded software development projects via http://www.rtos.be and http://www.rtos.eu