【问题标题】:Change IP settings using C++使用 C++ 更改 IP 设置
【发布时间】:2011-02-23 18:49:36
【问题描述】:

如何通过 C++ 以编程方式更改 Windows CE 6 机器的 IP 设置? Windows 的功能也可以使用。

我发现我可以通过sethostname 更改主机名,但找不到如何更改 IP 地址设置,例如:

  • IP 地址
  • DHCP
  • 子网
  • 网关
  • DNS1 / DNS2
  • WINS1 / WINS2

任何建议/指针都会很棒。 谢谢。

附:您如何让该框更新到这些设置 - 是否需要刷新或类似于 ipconfig /renew 的编程?

【问题讨论】:

    标签: c++ network-programming windows-ce ip-address


    【解决方案1】:

    警告:使用 IpHelper、AddIpAddress 不会永久更改 IP 地址。 重启后,原来的网卡设置又恢复了。

    【讨论】:

      【解决方案2】:

      您查看过 MSDN 上的IP Helper Routines 吗?我认为这些提供了您需要的部分(如果不是全部)。

      **编辑:** 更新链接。谢谢cacke

      【讨论】:

      【解决方案3】:

      其中大部分都属于 IpHlp API。

      您并没有真正更改 IP 地址——您使用DeleteIpAddress 删除旧地址,然后使用AddIpAddress 添加新地址。添加地址时指定子网掩码。

      关于 DHCP,您并不清楚您想了解什么。您可以通过IpReleaseAddressIpRenewAddress 使用DHCP。您可以使用GetAdaptersInfo(以及其他)获取当前 DHCP 服务器的地址。至少如果记忆有用,获取它的地址主要是为了提供信息——因为 DHCP 的基本思想是避免手动配置,你通常通过广播消息找到/使用它。

      您可以通过 WMI Win32_NetworkAdapterConfiguration 类(SetDNSServerSearchOrderSetWinsServer)设置 DNS 和 WINS 服务器

      您也可以通过 WMI 调整很多(大部分?)其他参数。

      【讨论】:

      • WMI 不适用于 WinCE。
      • @ctacke:糟糕——在写回复的过程中,我忘记了关于它是针对 CE 的小细节。谢谢提醒。
      猜你喜欢
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多