远程更改 TCP/IP 网络设置。






4.17/5 (3投票s)
您想更改主机名、DHCP 或静态 IP 设置吗?
引言
如何在裸机系统上远程更改 TCP/IP 网络设置?
情况
- 嵌入式 NT4.0 机器,具有最小的操作系统配置。
- 没有键盘(NULL 键盘驱动程序),没有屏幕(NULL 视频驱动程序)。
- 只能使用网络连接来访问嵌入式机器。
问题
- 我们如何更改计算机和网络主机名?
- 我们如何在 DHCP 或静态 IP 地址之间做出选择?
- 我们如何更改静态 IP 地址?
解决方案
- 使用 vnc、pc-anywhere 等工具连接,使用控制面板更改网络设置。(但裸机系统没有控制面板)。
- 使用 regedt32.exe(或其他注册表编辑器)远程连接到嵌入式机器并更改所有必要的注册表项。(在生产中使用不是一个很好的解决方案,如果想在现场更改某些内容会发生什么?)
- 使用 IPConfig.exe(可以在 NT 资源工具包中找到,但它只处理所需功能的一部分)
- 编写您自己的程序来远程操作注册表。
参考文献
通过使用 CodeGuru 文章 "Change IP Address and HostName of NT machine"(作者:Massimo Negroni)和 MSDN 文章 Q194407 提供的信息,以及 Len Holgate 出色的 Registry API 封装类 (https://codeproject.org.cn/system/cregistrykey.asp),我编写了一个小的 Win32 命令行程序来更改提到的注册表设置。更改后需要重新启动。(如果有人知道在 NT4 上更改 IP 地址而无需重新启动的方法,请告诉我)
程序
何时应该使用它?
如果以下句子完整描述了您的个性,那么请使用它!
- 我是一个命令行怪胎。
- 我需要为嵌入式 NT 4.0 编程
- 我喜欢冒险
- 我是一名系统管理员,想要为只有一张(1!)网卡的 Target NT 机器跨网络更改静态 IP 地址。
与所有注册表操作一样,您应该在尝试更改注册表之前对其进行备份。相信我,在调试这个小程序时,我确实搞砸了一两个系统注册表……使用风险自负。(注意:这意味着首先在“测试”机器上针对您的特定网络配置进行测试)。
实现信息
要使用和/或修改的最重要的注册表项是
- HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\DHCP
- HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards\\1
- HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\(网卡名称)\\Parameters\\TCPIP
- HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\TcpIp\\Parameters
构建信息
- 下载 Len Holgate 的 Registry API 封装源代码
- 创建一个 Win32 多线程 DLL 控制台项目,并将 Main.cpp、NWConnectionSettings.h 和 NWConnectionSettings.cpp 与 Registry API 封装类放在同一个目录(和项目)中。
使用信息
- 如果没有提供命令行参数,则检索本地计算机的设置。
- 要检索和更改远程网络计算机的设置,请指定网络计算机名称作为参数。
- 该程序需要管理员权限才能正常运行。
- 旨在用于 NT 4.0 或 NT Embedded 4.0
为所有苦苦挣扎的嵌入式 NT 兄弟们发布。
此致,
GBO.