您的位置:首页 > 编程语言 > VB

通过 WMI 改变网卡的IP地址 ChangeIP.vbs

2013-03-21 22:08 417 查看
这是第一个版本,就是实现换IP功能,只换第一个发现的,如果只有一个网卡的话可以用这个

view plaincopy to clipboardprint?

'/*=========================================================================

' * Intro 通过 WMI 改变网卡的IP地址 vbs版

' * FileName ChangeIP.vbs

' * Author yongfa365

' * Version v1.1

' * WEB http://www.yongfa365.com

' * Email yongfa365@qq.com

' * FirstWrite http://www.yongfa365.com/item/Use-WMi-Change-IP-VBS-yongfa365.html

' * LastModify 2007-12-29 13:57:50

' *==========================================================================*/



strIPAddress = Array("192.168.0.100","192.168.0.106") '修改后的ip,多个IP可以以","格开,可以写多个

strSubnetMask = Array("255.255.255.0","255.255.255.0") '子网掩码,配置同IP

strGateway = Array("192.168.0.1") '网关

arrDNSServers = Array("192.168.0.1", "221.12.1.228")'DNS,可以写多个



strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each objNetAdapter in colNetAdapters

'msgbox colnetadapters.count'看下有几块网卡

'sip = Join(objNetAdapter.IPAddress, ",") '得到原来的ip

'strIPAddress = sip '保持原来的ip

strGatewayMetric = Array(1)

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)

errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)

errDNS = objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)

If errEnable = 0 Then

WScript.Echo "IP修改成功"

Else

WScript.Echo "IP修改失败"

End If



Exit For '只修改第一个网卡的设置

Next

这是第二个版本,遍历所有网卡,如果这个网卡的IP里包含"116.90.185"的话,就换这个IP,比较智能化,当初设计出来是为了在移客户机器时,重启后会自动执行“启动”里的这个脚本,后来证明不成,因为客户没法登录,“启动”里的东西没法运行所以也就没法改IP了。

view plaincopy to clipboardprint?

'/*=========================================================================

' * Intro 通过 WMI 改变网卡的IP地址 vbs版

' * FileName ChangeIP.vbs

' * Author yongfa365

' * Version v2.0

' * WEB http://www.yongfa365.com

' * Email yongfa365@qq.com

' * FirstWrite http://www.yongfa365.com/item/Use-WMi-Change-IP-VBS-yongfa365.html

' * LastModify 2007-12-31 14:57:50

' *==========================================================================*/



strIPAddress = Array("66.66.66.7") '修改后的ip,多个IP可以以","格开,可以写多个

strSubnetMask = Array("255.255.255.224") '子网掩码,配置同IP

strGateway = Array("66.66.66.1") '网关

arrDNSServers = Array("66.233.9.9")'DNS,可以写多个



strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each objNetAdapter in colNetAdapters

sip = Join(objNetAdapter.IPAddress, ",")

if instr(sip,"116.90.185")<>0 then

strGatewayMetric = Array(1)

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)

errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)

errDNS = objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)

end if

Next

这是第三个版本,遍历所有网卡,如果这个网卡的IP里包含"116.90.185" 并且 时间到了预先设定好的时间,就换这个IP,测试成功,唯一不足的地方是,在运行这个脚本后不能重启机器,重启后这个脚本就运行不了了。但总的来说这个是最适用的。

view plaincopy to clipboardprint?

'/*=========================================================================

' * Intro 通过 WMI 改变网卡的IP地址 vbs版

' * FileName ChangeIP.vbs

' * Author yongfa365

' * Version v1.0

' * WEB http://www.yongfa365.com

' * Email yongfa365@qq.com

' * FirstWrite http://www.yongfa365.com/item/Use-WMi-Change-IP-VBS-yongfa365.html

' * LastModify 2007-1-3 14:57:50

' *==========================================================================*/



strIPAddress = Array("66.66.66.7") '修改后的ip,多个IP可以以","格开,可以写多个

strSubnetMask = Array("255.255.255.224") '子网掩码,配置同IP

strGateway = Array("66.66.66.1") '网关

arrDNSServers = Array("66.233.9.9")'DNS,可以写多个



strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each objNetAdapter in colNetAdapters

sip = Join(objNetAdapter.IPAddress, ",")

if instr(sip,"116.90.185")<>0 then

do while 1

if (now-#2008-1-3 23:00:00#) >0 then '关机时间

strGatewayMetric = Array(1)

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)

errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)

errDNS = objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)

exit do

else

Wscript.Sleep 60*1000

end if

loop

end if

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