您的位置:首页 > 其它

windows中ip地址存放的位置,及修改

2015-09-14 11:23 1016 查看
Windows中ip的存储与设置

修改ip命令:netsh interface ipv4 set address name="本地连接" source=static addr=10.1.50.64 mask=255.255.248.0 gateway=10.1.48.1;//不一定是本地连接,具体可以看网络连接中的网络连接名,获取命令netsh interface show interface查看接口名称

ip在注册表中存放的位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces,Interfaces下有几个guid是根据安装的时候生成的。

如果里面有数据,应该会有IPAddress等键,值就是ip的字符串,如果单纯修改那个字符串需要重启该ip才能生效,获取禁用网络适配器然后启动网络适配器才能生效。也可以调用netcfgx.dll中调用的dhcpcsvc.dll中一个未公开的API:DhcpNotifyConfigChange

未公开函数DhcpNotifyConfigChange位于 dhcpcsvc.dll中,原型如下:

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}表项中有许多00开头的项,里面的Ndi\Interfaces有一个键名为LowerRange,如果其对应字符串值为ethernet,表示其为网络适配器。回到00开头的项有一个键为NetCfgInstanceId的项,其值为guid,就是上面说的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces下的项的名称,

GetAdaptersInfo(pIpAdapteInfo, &dwSize);也可以获取对应适配器名称,一个guid

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}下有一个网络适配器对应的guid,guid下面有一个名为connectd项,里面有一个名为Name的键,对应的值就是修改ip命令中的name,也是网络连接中名字获取这个名字之后可以通过修改ip命令修改对应的ip了。

AddIPAddress和SetIPAddress或许也可以尝试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: