VC直接修改IP地址(不需要重起)
来源:互联网 发布:网络推手原则 编辑:程序博客网 时间:2024/04/28 15:20
设置IP地址只需要更改注册表中关于适配器的相应设置,但更改后需要重新启动系统才能生效,而AddIPAddress函数只能添加IP而不是更改当前的IP,我们在Windows NT/2000界面上操作不需要重新启动就可以生效,那系统到底做了什么额外的工作才使IP设置直接生效呢?笔者通过跟踪explorer.exe中API的调用发现在netcfgx.dll中调用了dhcpcsvc.dll中一个未公开的API:DhcpNotifyConfigChange,现将 不重新启动WINDOWS直接更改IP地址的详细方法介绍如下
一、获取适配器名称
这里指的适配器名称要区别于适配器描述,比如我的一块网卡,适配器描述是:Realtek RTL8139(A) PCI Fast Ethernet Adapter,适配器名称为:{66156DC3-44A4-434C-B8A9-0E5DB4B3EEAD}。获取适配器名称的方法有多种:
二、调用IP helper API取得适配器名称
三、读取注册表取得适配器名称
在Windows2000中可以通过遍历 HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Class/{4d36e972-e325-11ce-bfc1-08002be10318}/000n/ (n是从0开始编号的数字)所有接口, 在Windows NT中可以读取HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/NetworkCards中的信息,下面以Windows2000为例:
四、将IP信息写入注册表
代码如下
五、调用DhcpNotifyConfigChange通知配置的改变
未公开函数DhcpNotifyConfigChange位于 dhcpcsvc.dll中,原型如下:
具体调用代码如下:
六、程序运行效果:
七、下载地址:
http://www.hellocpp.net/Common/Download.aspx?attachment_id=226
- VC直接修改IP地址(不需要重起)
- VC直接修改IP地址(不需要重起)
- VC++不重起Windows直接更改IP地址
- VC++ 不重启Windows直接更改IP地址
- ubuntu修改ip地址重启网络
- tomcat6 直接输入ip地址进行访问不需要输入工程名
- VC知识库文章 - 不重起Windows直接更改IP地址
- 命令行下直接修改Windows2000的IP地址
- Wince中修改IP地址而无需重启
- Wince中修改IP地址而无需重启
- Wince中修改IP地址而无需重启
- tomcat热部署 更改类文件不需要重起
- IP地址重定向
- Tomcat 修改类后不需要重启
- 修改注册表不需要重启机子
- struts2修改xml不需要重启
- ifconfig修改IP地址后,重启网络服务或者重启电脑 修改后的IP无法生效!
- VC++ Ping IP地址
- 红黑树分析与实现之一
- 不可小看的extern "C"
- Microsoft SQL Server 2000 4in1 简体中文正式版+SP4 升级补丁
- 前情就此了断
- ATL写ActiveX的注意事项
- VC直接修改IP地址(不需要重起)
- poj 2100
- Mission Off Mercury
- 差分约束系统
- HttpClient Multithread
- 哈哈
- 在 Ubuntu 8.10环境下编译 pulseaudio-0.9.10
- 中国剩余定理
- Struts2中的Action