如题

解决方案 »

  1.   

    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
    Next
    End Function
      

  2.   

    谢谢,不错,但如果dns给空值怎么设置?
      

  3.   

    能不能解释一下啊,呵呵
    这个不懂:
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
      

  4.   

    Const wbemFlagReturnImmediately = &H10
    Const wbemFlagForwardOnly = &H20
    Const ENABLESTATIC = "EnableStatic"
    Const SETGATEWAY = "SetGateways"
    Const SETDNSSEARCHORDER = "SetDNSServerSearchOrder"
    Const ENABLEDHCP = "EnableDHCP"
    Const RENEWDHCPLEASE = "RenewDHCPLease"
    Const RELEASEDHCPLEASE = "ReleaseDHCPLease"
    Const ENABLEDNS = "EnableDNS"
    Private objMethod As SWbemMethod
    Private m_index As IntegerPublic Sub SetAutoIPadd()
    '修改为自动获得ip
    Dim colInstances As SWbemObjectSet
        Dim objInstance As SWbemObject
        Dim objInparam As SWbemObject
        Dim objOutParam As SWbemObject
        Dim objLocator As SWbemLocator
        Dim objService As SWbemServices
        Dim objMethod As SWbemMethod
        Dim swmi As String
        Dim sNameSpace As String
        
        sNameSpace = "root/CIMV2"
        
        Set objLocator = New WbemScripting.SWbemLocator
        Set objService = objLocator.ConnectServer(, sNameSpace)
        objService.Security_.ImpersonationLevel = wbemImpersonationLevelImpersonate
        objService.Security_.AuthenticationLevel = wbemAuthenticationLevelConnect
        
        swmi = "Select * from Win32_NetworkAdapterConfiguration where DatabasePath is not null"
        Set colInstances = objService.ExecQuery(swmi, "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)    For Each objInstance In colInstances
            If objInstance.dhcpenabled = True Then
                MsgBox "DHCP已经开启"
            Else
                'modify dns
                Set objOutParam = objInstance.ExecMethod_(ENABLEDHCP)
                Set objOutParam = objInstance.ExecMethod_(RELEASEDHCPLEASE)
                Set objOutParam = objInstance.ExecMethod_(RENEWDHCPLEASE)
            End If
        Next objInstance
        Set objOutParam = Nothing
        Set objInparam = Nothing
        Set objMethod = Nothing
        Set objInstance = Nothing
        Set colInstances = Nothing
        Set objService = Nothing
        Set objLocator = Nothing
    End Sub
      

  5.   

    如果网关和dns是空的需要怎么修改呢?
      

  6.   

    请高手指教:如果网关和dns是空的需要怎么修改呢?
      

  7.   

    另开帖给分:
    http://community.csdn.net/Expert/topic/4032/4032911.xml?temp=.5756494