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

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或许也可以尝试


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值