通过注册表更改IP为自动获取方式,DhcpNotifyConfigChange怎么传参数?

时间:2022-11-29 08:52:46
通过注册表更改IP为自动获取方式,用DhcpNotifyConfigChange通知生效,
怎么传参数?由做过的兄弟没?

5 个解决方案

#1


在http://topic.csdn.net/u/20090827/09/f4557a61-7183-4374-a504-6b667711473b.html的答案貌似你不满意


BOOL DhcpNotifyConfigChange(
LPWSTR lpwszServerName, // 本地机器为NULL
LPWSTR lpwszAdapterName, // 适配器名称
BOOL bNewIpAddress, // TRUE表示更改IP
DWORD dwIpIndex, // 指明第几个IP地址,如果只有该接口只有一个IP地址则为0
DWORD dwIpAddress, // IP地址
DWORD dwSubNetMask, // 子网掩码
int nDhcpAction ); // 对DHCP的操作 0:不修改, 1:启用 DHCP,2:禁用 DHCP


用法就这样的啊

#2


if((pDhcpNotifyProc = (DHCPNOTIFYPROC)GetProcAddress(hDhcpDll, "DhcpNotifyConfigChange")) != NULL)
if((pDhcpNotifyProc)(NULL, wcAdapterName, TRUE, 0, inet_addr("192.168.1.20"), inet_addr("255.255.255.0"), 0) == ERROR_SUCCESS)


这样不行?

#3


引用 2 楼 tr0j4n 的回复:
C/C++ codeif((pDhcpNotifyProc= (DHCPNOTIFYPROC)GetProcAddress(hDhcpDll,"DhcpNotifyConfigChange"))!= NULL)if((pDhcpNotifyProc)(NULL, wcAdapterName, TRUE,0, inet_addr("192.168.1.20"), inet_addr("255.255.255.0"),0)== ERROR_SUCCESS)

这样不行?

这样传参,只有在机子已经是静态指定IP方式,然后把当前静态地址更改为192.168.1.20可用,
我问的是:
当前是静态指定IP,我要更改为自动获取方式,怎么传参数,我试着最后一个参数传 1 
启用DHCP指派,不起作用

哪位兄弟做过,指导下?

#4


禁用网卡之后重新启用网卡
你也可以重新启动DNS client服务,不过不知道网卡禁用时是否有效

#5


引用 4 楼 jiangsheng 的回复:
禁用网卡之后重新启用网卡
你也可以重新启动DNS client服务,不过不知道网卡禁用时是否有效

禁用重启网卡是没问题的
但是现在想不禁用网卡,来更改实现,不知道还有什么好的提议?

#1


在http://topic.csdn.net/u/20090827/09/f4557a61-7183-4374-a504-6b667711473b.html的答案貌似你不满意


BOOL DhcpNotifyConfigChange(
LPWSTR lpwszServerName, // 本地机器为NULL
LPWSTR lpwszAdapterName, // 适配器名称
BOOL bNewIpAddress, // TRUE表示更改IP
DWORD dwIpIndex, // 指明第几个IP地址,如果只有该接口只有一个IP地址则为0
DWORD dwIpAddress, // IP地址
DWORD dwSubNetMask, // 子网掩码
int nDhcpAction ); // 对DHCP的操作 0:不修改, 1:启用 DHCP,2:禁用 DHCP


用法就这样的啊

#2


if((pDhcpNotifyProc = (DHCPNOTIFYPROC)GetProcAddress(hDhcpDll, "DhcpNotifyConfigChange")) != NULL)
if((pDhcpNotifyProc)(NULL, wcAdapterName, TRUE, 0, inet_addr("192.168.1.20"), inet_addr("255.255.255.0"), 0) == ERROR_SUCCESS)


这样不行?

#3


引用 2 楼 tr0j4n 的回复:
C/C++ codeif((pDhcpNotifyProc= (DHCPNOTIFYPROC)GetProcAddress(hDhcpDll,"DhcpNotifyConfigChange"))!= NULL)if((pDhcpNotifyProc)(NULL, wcAdapterName, TRUE,0, inet_addr("192.168.1.20"), inet_addr("255.255.255.0"),0)== ERROR_SUCCESS)

这样不行?

这样传参,只有在机子已经是静态指定IP方式,然后把当前静态地址更改为192.168.1.20可用,
我问的是:
当前是静态指定IP,我要更改为自动获取方式,怎么传参数,我试着最后一个参数传 1 
启用DHCP指派,不起作用

哪位兄弟做过,指导下?

#4


禁用网卡之后重新启用网卡
你也可以重新启动DNS client服务,不过不知道网卡禁用时是否有效

#5


引用 4 楼 jiangsheng 的回复:
禁用网卡之后重新启用网卡
你也可以重新启动DNS client服务,不过不知道网卡禁用时是否有效

禁用重启网卡是没问题的
但是现在想不禁用网卡,来更改实现,不知道还有什么好的提议?