用VC写的程序,怎么样在 win2000 server 中动态修改本机的 IP,且不用重启就使新的 IP 生效?

解决方案 »

  1.   

    试下 IP Helper API中的 AddIPAddress 和 DeleteIPAddress 这两个函数
      

  2.   

    用VC写的程序,怎么样在 win2000 server 中动态修改本机的 IP,且不用重启就使新的 IP 生效?
      

  3.   

    这个我不会。
    修改IP地址很简单,改注册表就行。但是需要重启才能生效。
    为什么2000里可以不重启立即生效呢?是因为他的设备管理能力很强。
    在改变地址之后,他马上对网络设备进行初始化,就能用上新地址。
    但是他怎样进行设备初始化的呢?我搞不明白这点。
    我猜他是通过电源管理做到的,
    因为98里改了地址也要重启才能生效。
    98 和 2000 的最核心的差别也在电源管理上。
    如果他把网卡断电一下,然后又恢复供电,这样网络一定会被初始化。
    当然我不知道他具体是不是这样操作的,但是如果你掌握了设备电源管理的方法保证行得通。
    可是设备电源管理方面资料太少,我为了用程序关掉显示器电源这个目的找了很久都没有结果。
    我的MSDN6几乎没有提及这个话题。但是MSDN.NET里说得稍微详细点,可是远远不够,我的英文又不过关,更看不懂。如果你的英文好的话去找MSDN.NET看看,说不定有收获。
      

  4.   

    icansaymyabc(学习与进步) 说的有道理,不过感觉应该不是通过电源管理瞬时掉电实现的。应该是设备管理比较好了,其实说“比较好”,也不是什么新鲜东西,Linux下的设备更改,什么时候要求重启机器了?所以说是Windows以前的版本没做好而已,因为它的图形界面放在它的内核中,这样的好处是速度快,但稳定性就差了,为求保险,干脆,你设备变动,甚至IP改变,就来个重启机器,也不用它操心了。
    哦,说了半天没用。楼主,偶帮不上忙,不过帮忙UP啊
      

  5.   

    这里有个完整答案
    http://www.vckbase.com/document/viewdoc.asp?id=851---------
      ++C++
    ---------