|
本帖最后由 jingyi11023995 于 2024-3-27 15:34 编辑
目前能找到的设置IP地址的方法是CMD或者VBS的方式,wmi的没有,经过多天努力和尝试,终于得到正确代码,希望能帮到大家。
.版本 2
.程序集变量 DescriptionArr, 文本型, , "0"
.程序集变量 PhysicalAdapterArr, 文本型, , "0"
’使用示例:
wmi_枚举网卡描述和是否物理网卡 (DescriptionArr, PhysicalAdapterArr)‘先执行这个,获取到相关信息数组
根据网卡描述找到Index (“TP-LINK Wireless USB Adapter”)'测试
wmi_修改IP地址和网关和子网掩码和DNS (“TP-LINK Wireless USB Adapter”, { “192.168.0.138” }, { “255.255.255.0” }, { “192.168.0.1” }, { “202.96.128.86”, “202.96.128.166” })测试
wmi_IP设置为自动获取 (“TP-LINK Wireless USB Adapter”)测试
wmi_DNS设置为自动获取 (“TP-LINK Wireless USB Adapter”)测试
文本_是否IP格式()'精易没有这个,建议也加入
|
wmi_枚举网卡描述和是否物理网卡 | 整数型 | | |
网卡描述数组 | 文本型 | | | | 是否物理网卡数组 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | objWbemLocator | 对象 | | | objWMIService | 对象 | | | colClasses | 对象 | | | Properties | 对象 | | | NewEnum | 对象 | | | objClass | 对象 | | | hreslut | 整数型 | | | Variant | 变体型 | | | pcFetched | 整数型 | | | value | 文本型 | | | 重定义数组 (网卡描述数组, 假, 0 )重定义数组 (是否物理网卡数组, 假, 0 )如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, )) objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “root\CIMV2”, , , , , , ) 如果真 (objWMIService. 是否为空 () = 假)colClasses = objWMIService. 对象型方法 (“ExecQuery”, “SELECT * FROM Win32_NetworkAdapter”)如果真 (colClasses. 是否为空 () = 假)NewEnum = colClasses. 对象型方法 (“_NewEnum”, )如果真 (NewEnum. 是否为空 () = 假)循环判断首 ()hreslut = IEnumVARIANT_Next (取对象指针 (NewEnum ), 1, 取变体型指针 (Variant ), pcFetched )如果真 (hreslut = 0 )objClass = Variant. 取对象 ()Properties = objClass. 读对象型属性 (“Properties_”, )value = Properties. 对象型方法 (“Item”, “Description”). 读文本属性 (“value”, ) 加入成员 (网卡描述数组, value )value = Properties. 对象型方法 (“Item”, “PhysicalAdapter”). 读文本属性 (“value”, ) 加入成员 (是否物理网卡数组, value )objClass. 清除 ()Variant. 清除 ()处理事件 ()循环判断尾 (pcFetched = 1 )NewEnum. 清除 ()colClasses.清除 ()objWMIService.清除 ()objWbemLocator.清除 ()调试输出 (网卡描述数组, 是否物理网卡数组 )返回 (取数组成员数 (网卡描述数组 ))
|
wmi_修改IP地址和网关和子网掩码和DNS | 文本型 | | |
Description | 文本型 | | | | IPAddress | 文本型 | | | | SubnetMask | 文本型 | | | | Gateways | 文本型 | | | | DNS | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | objWbemLocator | 对象 | | | objWMIService | 对象 | | | objShare | 对象 | | | objInParam网址 | 对象 | | | objInParam网关 | 对象 | | | objInParamDNS | 对象 | | | objOutParams | 对象 | | | var | 变体型 | | | bool | 逻辑型 | | | 变体 | 变体型 | | | index | 整数型 | | | 判断 (文本_是否IP格式 (IPAddress [1 ]) = 假)返回 (“输入IP有误,正确示例:192.168.1.138”)判断 (文本_是否IP格式 (SubnetMask [1 ]) = 假)返回 (“输入掩码有误,正确示例:255.255.255.0”)判断 (文本_是否IP格式 (Gateways [1 ]) = 假)返回 (“输入网关有误,正确示例:192.168.1.1”)判断 (文本_是否IP格式 (DNS [1 ]) = 假 或 文本_是否IP格式 (DNS [2 ]) = 假)返回 (“输入DNS有误,正确示例:{ ” + #引号 + “202.96.128.86” + #引号 + “, ” + #引号 + “202.96.128.166” + #引号 + “ }” + #引号 )index = 根据网卡描述找到Index (Description ) 如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, )) objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “\root\CIMV2”, , , , , , ) 如果真 (objWMIService. 是否为空 () = 假)objShare = objWMIService. 对象型方法 (“Get”, “Win32_NetworkAdapterConfiguration.Index='” + 到文本 (index ) + “'”)如果真 (objShare. 是否为空 () = 假)objInParam网址 = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “EnableStatic”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, ) 变体. 赋值 (IPAddress, ) bool = objInParam网址. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “IPAddress”). 写属性 (“value”, 变体 )调试输出 (objInParam网址. 取错误 (), bool )变体. 赋值 (SubnetMask, ) bool = objInParam网址. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “SubnetMask”). 写属性 (“value”, 变体 )调试输出 (objInParam网址. 取错误 (), bool ) objOutParams = objShare. 对象型方法 (“ExecMethod_”, “EnableStatic”, objInParam网址 )如果真 (objOutParams. 是否为空 () = 假)var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ()) objOutParams. 清除 () objInParam网关 = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “SetGateways”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, )变体. 赋值 (Gateways, ) bool = objInParam网关. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “DefaultIPGateway”). 写属性 (“value”, 变体 )调试输出 (objInParam网关. 取错误 (), bool )objOutParams = objShare. 对象型方法 (“ExecMethod_”, “SetGateways”, objInParam网关 ) objOutParams = objShare. 对象型方法 (“ExecMethod_”, “EnableStatic”, objInParam网址 )如果真 (objOutParams. 是否为空 () = 假)var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ()) objOutParams. 清除 () objInParamDNS = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “SetDNSServerSearchOrder”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, )变体. 赋值 (DNS, )bool = objInParamDNS. 对象型方法 (“Properties_”, ). 对象型方法 (“Item”, “DNSServerSearchOrder”). 写属性 (“value”, 变体 )调试输出 (objInParamDNS. 取错误 (), bool ) objOutParams = objShare. 对象型方法 (“ExecMethod_”, “SetDNSServerSearchOrder”, objInParamDNS )如果真 (objOutParams. 是否为空 () = 假)var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ()) objOutParams. 清除 ()objShare. 清除 ()objWMIService.清除 ()objWbemLocator.清除 ()返回 (“”)
|
wmi_IP设置为自动获取 | | | |
Description | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | objWbemLocator | 对象 | | | objWMIService | 对象 | | | objShare | 对象 | | | objInParam | 对象 | | | objOutParams | 对象 | | | var | 变体型 | | | index | 整数型 | | |
index = 根据网卡描述找到Index (Description )如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, )) objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “\root\CIMV2”, , , , , , ) 如果真 (objWMIService. 是否为空 () = 假)objShare = objWMIService. 对象型方法 (“Get”, “Win32_NetworkAdapterConfiguration.Index='” + 到文本 (index ) + “'”)如果真 (objShare. 是否为空 () = 假)objInParam = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “EnableDHCP”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, ) objOutParams = objShare. 对象型方法 (“ExecMethod_”, “EnableDHCP”, objInParam )如果真 (objOutParams. 是否为空 () = 假)var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ()) objOutParams. 清除 ()objShare.清除 ()objWMIService.清除 ()objWbemLocator.清除 ()
|
wmi_DNS设置为自动获取 | | | |
Description | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | index | 整数型 | | | objWbemLocator | 对象 | | | objWMIService | 对象 | | | objShare | 对象 | | | objInParam | 对象 | | | objOutParams | 对象 | | | var | 变体型 | | |
index = 根据网卡描述找到Index (Description )如果真 (objWbemLocator. 创建 (“WbemScripting.SWbemLocator”, )) objWMIService = objWbemLocator. 对象型方法 (“ConnectServer”, “.”, “\root\CIMV2”, , , , , , ) 如果真 (objWMIService. 是否为空 () = 假)objShare = objWMIService. 对象型方法 (“Get”, “Win32_NetworkAdapterConfiguration.Index='” + 到文本 (index ) + “'”)如果真 (objShare. 是否为空 () = 假)objInParam = objShare. 读对象型属性 (“Methods_”, ). 对象型方法 (“Item”, “SetDNSServerSearchOrder”). 读对象型属性 (“InParameters”, ). 对象型方法 (“SpawnInstance_”, ) objOutParams = objShare. 对象型方法 (“ExecMethod_”, “SetDNSServerSearchOrder”, objInParam )如果真 (objOutParams. 是否为空 () = 假)var = objOutParams. 读对象型属性 (“Properties_”, ). 对象型方法 (“Item”, “ReturnValue”). 读属性 (“value”, )调试输出 (“ReturnValue:”, 变体型类型 (var. 取类型 ()), var. 取数值 ()) objOutParams. 清除 ()objShare.清除 ()objWMIService.清除 ()objWbemLocator.清除 ()
arr = 分割文本 (ip, “.”, )判断 (取数组成员数 (arr ) ≠ 4 )返回 (假)计次循环首 (4, i )判断 (文本_是否为数字 (arr [i ]) = 假 或 到整数 (arr [i ]) < 0 或 到整数 (arr [i ]) > 255 )返回 (假)计次循环尾 ()返回 (真)
|
|