我有一个局域网。192.168.1.1的是可以上外网的网关及DNS,192.168.1.2是内网的网关及DNS。我想写一个程序,用程序来修改网关及DNS以达到上外网及内网的自由切换。我不知道用VB代码何写??在此请教高手了。多谢了。。

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3703/3703979.xml?temp=.6023981
      

  2.   

    Function ChangeIP(IP As String, NM As String, GW As String, MDNS As String, SDNS As String) As String
    '返回值说明:返回一个设置的中文说明.
    Dim strComputer, objWMIService, colNetAdapters, strIPAddress, strSubnetMask
    Dim strGateway, strGatewaymetric, strDNS, objNetAdapter, errEnable, errGateways, errDNS
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    strIPAddress = Array(IP) 'ip地址
    strSubnetMask = Array(NM) '子网掩码
    strGateway = Array(GW) '网关
    strDNS = Array(MDNS, SDNS) '主DNS各备DNS
    strGatewaymetric = Array(1)
     
    For Each objNetAdapter In colNetAdapters
        errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
        errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
        errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
        If errEnable = 0 And errGateways = 0 And errDNS = 0 Then
            ChangeIP = "设置成功"
        Else
            If errEnable = 0 Then
                ChangeIP = "IP地址和子网掩码设置成功, "
            Else
                ChangeIP = "IP地址或子网掩码设置失败, "
            End If
            If errGateways = 0 Then
                ChangeIP = ChangeIP & "默认网关设置成功, "
            Else
                ChangeIP = ChangeIP & "默认网关设置失败, "
            End If
            If errDNS = 0 Then
                ChangeIP = ChangeIP & "DNS设置成功"
            Else
                ChangeIP = ChangeIP & "DNS设置失败"
            End If
        End If
    NextEnd Function
    Private Sub Command1_Click()
    MsgBox ChangeIP("192.168.1.12", "255.255.255.0", "192.168.1.1", "201.96.112.133", "84.124.96.122")
    End Sub