65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.17/5 (3投票s)

2000年5月9日

CPOL
viewsIcon

250342

downloadIcon

7557

您想更改主机名、DHCP 或静态 IP 设置吗?

  • 下载源代码 - 8 KB
  • 可执行文件 - 7 Kb
  • 引言

    如何在裸机系统上远程更改 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.

    © . All rights reserved.