【VBS】修改IP地址~适用于其他工具无法修改IP时
本帖最后由 xiaomingtt 于 2024-8-27 10:03 编辑当网卡的属性页面被禁用,netsh命令被禁用,更改适配器设置后切换的网络连接页面一片空白,测试了一下在论坛找的几款修改工具
【7.29更新】IP地址修改器_5.0.6.9 - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
【开源】IP配置工具_2.6__一键切换IP、改Mac、计算机名 - 『编程语言区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
ip切换工具ipwhiz1.72绿色免费版 - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
NetMagic网络地址快速切换工具 - 『原创发布区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
局域网IP扫描&一键更换本机IP小工具 - 『原创发布区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
本机IP一键设置 - 『原创发布区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
全部修改失败。
看下面两款软件截图,无法获取网卡信息,其他的有的可以获取网卡但均无法修改IP和掩码。
鉴于我们单位修改IP是刚需,于是写了段VBS代码,但正常修改IP失败后会通过修改注册表达到修改IP的目的(通过注册表修改需要重启电脑),代码自用的,需要的请自行修改。
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Do
strIP = InputBox("请输入IP地址", "IP地址修改器", "192.168.118.111")
If strIP = False Then Wscript.Quit
Loop Until ValidateIP(strIP)
strDNS1 = "1.2.4.8"
strDNS2 = "1.1.1.1"
a = Split(strIP, ".")(2)
If a = "118" Or a = "119" Then
strMask = "255.255.254.0"
strGW = "192.168.119.254"
Else
strMask = "255.255.255.0"
strGW = Left(strIP, InStrRev(strIP, ".") - 1) & ".254"
End If
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=true")
For Each objItem in colItems
If (InStr(objItem.Description, "PCI") > 0) Then MAC = objItem.MACAddress
Next
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where MACAddress='" & MAC & "'")
For Each objNetAdapter In colNetAdapters
AdapterGUID = objNetAdapter.SettingID
Exit For
Next
If ChangeNetworkConfig(objWMIService, strIP, strMask, strGW, strDNS1, strDNS2, MAC) Then
MsgBox "IP地址已更改。", 64, "IP地址修改器"
Else
RegBasePaths = Array("SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & AdapterGUID, _
"SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\" & AdapterGUID, _
"SYSTEM\ControlSet002\Services\Tcpip\Parameters\Interfaces\" & AdapterGUID)
For Each RegBasePath in RegBasePaths
Msg = Msg & vbCrLF & ChangeIPWithREG(RegBasePath, strIP, strMask, strGW, strDNS1, strDNS2)
Next
MsgBox Msg, 64, "IP地址修改器"
End If
Function ValidateIP(strIP)
Set re = New Regexp
re.Pattern = "^192\.168\.(?:11|12)\.(?:25|2|1{2}|?)$"
re.IgnoreCase = True
re.Global = True
ValidateIP = re.Test(strIP)
If Not ValidateIP Then MsgBox "地址非法", 16, "IP地址修改器"
End Function
Function ChangeNetworkConfig(objWMIService, strIP, strMask, strGW, strDNS1, strDNS2, MAC)
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where MACAddress='" & MAC & "'")
strIPAddress = Array(strIP)
strSubnetMask = Array(strMask)
strGateway = Array(strGW)
strGatewayMetric = Array(1)
arrDNSServers = Array(strDNS1, strDNS2)
For Each objNetAdapter In colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewayMetric)
errDNS = objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)
If errEnable = 0 And errGateways = 0 Then
ChangeNetworkConfig = True
Exit Function
End If
Next
ChangeNetworkConfig = False
End Function
Function ChangeIPWithREG(sPath, IPAddress, SubnetMask, Gateway, DNS1, DNS2)
hKey = &H80000002
Set objWMIService = GetObject("winmgmts:\\.\root\default:StdRegProv")
v1 = objWMIService.SetMultiStringValue(hKey, sPath, "IPAddress", Array(IPAddress))
v2 = objWMIService.SetMultiStringValue(hKey, sPath, "SubnetMask", Array(SubnetMask))
v3 = objWMIService.SetMultiStringValue(hKey, sPath, "DefaultGateway", Array(Gateway))
v4 = objWMIService.SetStringValue(hKey, sPath, "NameServer", DNS1 & "," & DNS2)
If v1 = 0 And v2 = 0 And v3 = 0 And v4 = 0 Then
ChangeIPWithREG = "IP设置成功,重启电脑后生效。"
Else
ChangeIPWithREG = "IP配置设置失败。"
End If
End Function
```vbscript
' 定义默认的计算机名称
strComputer = "."
' 通过WMI连接到本地计算机的CIMV2命名空间
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
' 循环直到用户输入有效的IP地址
Do
' 弹出输入框让用户输入IP地址
strIP = InputBox("请输入IP地址", "IP地址修改器", "192.168.118.111")
' 如果用户点击取消,则退出脚本
If strIP = False Then Wscript.Quit
Loop Until ValidateIP(strIP)
' 定义默认的DNS服务器地址
strDNS1 = "1.2.4.8"
strDNS2 = "1.1.1.1"
' 提取输入IP地址的第三段,用于判断子网掩码和默认网关
a = Split(strIP, ".")(2)
' 根据第三段地址设置子网掩码和默认网关
If a = "118" Or a = "119" Then
strMask = "255.255.254.0"
strGW = "192.168.119.254"
Else
strMask = "255.255.255.0"
' 构建默认网关地址
strGW = Left(strIP, InStrRev(strIP, ".") - 1) & ".254"
End If
' 查询启用的网络适配器配置
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=true")
' 遍历所有启用的网络适配器
For Each objItem in colItems
' 查找包含"PCI"描述的网络适配器并记录其MAC地址
If (InStr(objItem.Description, "PCI") > 0) Then MAC = objItem.MACAddress
Next
' 查询具有特定MAC地址的网络适配器配置
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where MACAddress='" & MAC & "'")
' 遍历查询结果,获取网络适配器的设置ID
For Each objNetAdapter In colNetAdapters
AdapterGUID = objNetAdapter.SettingID
' 找到适配器后退出循环
Exit For
Next
' 尝试更改网络配置
If ChangeNetworkConfig(objWMIService, strIP, strMask, strGW, strDNS1, strDNS2, MAC) Then
' 如果成功,则弹出消息框通知用户
MsgBox "IP地址已更改。", 64, "IP地址修改器"
Else
' 如果失败,则尝试通过注册表更改配置
RegBasePaths = Array("SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & AdapterGUID, _
"SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\" & AdapterGUID, _
"SYSTEM\ControlSet002\Services\Tcpip\Parameters\Interfaces\" & AdapterGUID)
' 遍历注册表路径并尝试更改配置
For Each RegBasePath in RegBasePaths
Msg = Msg & vbCrLF & ChangeIPWithREG(RegBasePath, strIP, strMask, strGW, strDNS1, strDNS2)
Next
' 弹出消息框显示结果
MsgBox Msg, 64, "IP地址修改器"
End If
' 验证IP地址是否合法的函数
Function ValidateIP(strIP)
' 创建正则表达式对象
Set re = New Regexp
' 设置正则表达式模式
re.Pattern = "^192\.168\.(?:11|12)\.(?:25|2|1{2}|?)$"
re.IgnoreCase = True
re.Global = True
' 测试输入的IP地址是否匹配
ValidateIP = re.Test(strIP)
' 如果不匹配,则弹出错误消息
If Not ValidateIP Then MsgBox "地址非法", 16, "IP地址修改器"
End Function
' 更改网络配置的函数
Function ChangeNetworkConfig(objWMIService, strIP, strMask, strGW, strDNS1, strDNS2, MAC)
' 查询具有特定MAC地址的网络适配器配置
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where MACAddress='" & MAC & "'")
' 定义IP地址、子网掩码、默认网关和DNS服务器数组
str
``` grrr_zhao 发表于 2024-8-26 20:28
第一个没有失效
对正常环境肯定没失效,但对我们特殊环境是没用的,看我的截图,网卡一个也没识别出来,就没办法修改了. 支持一下,还是这款软件好运 来个大佬解答一下,这个好不好用?目前还真没找到合适的好用的 支持一下,还是这款软件好用 还不错,下载支持一下 楼主 软件在哪里下载呀 我也经常在内网和外网中经常切换,急需一个改IP的软件。 支持,我们公司电脑也是,经常打不开网络修改界面 感谢分享!!! 蹲个现成的:keai