none
IPConfig.IPAddress IPv6 / IPv4 RRS feed

  • Pergunta

  • Ba galera

    Estou com outro problema tche, no scritp abaixo quando coloco (i) ele traz o resultado da placa de rede que esta ativa, porem
    se a placa de rede estiver com o IPv6 ativo ele me traz o IPv6 e nao o valor Do IPv4 configurado, entao coloquei um Or IPv4, e ele
    passou a trazer o IP mais sem a separação por pontos, este caminho que tomei é o correto, tem outra forma de fazer, ou alguma forma
    de escrever os pontos tb, obrigado.

    On error resume next
    strcomputer = "."

    '-----------------------------------------------------------------------------------------
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set NET = objwmiservice.execquery("SELECT * FROM Win32_NetworkAdapterConfiguration")
    For Each IPConfig In NET
    If Not IsNull(IPConfig.IPAddress) Then
    For i = LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
      Ip = IPConfig.IPAddress(i) or IPv4
    Next
    End If
    Next

    WScript.Echo ip

    terça-feira, 20 de março de 2012 14:37

Respostas

  • Marcelo,

    Você pode verificar se existe a string "." dentro do IP, se for IPv6 não vai ter "." apenas números e ":"

    On error resume next
    strcomputer = "."
    
    '-----------------------------------------------------------------------------------------
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set NET = objwmiservice.execquery("SELECT * FROM Win32_NetworkAdapterConfiguration")
    For Each IPConfig In NET
    	If Not IsNull(IPConfig.IPAddress) Then
    		For i = LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
    				
    				IF INSTR(IPConfig.IPAddress(i),".") THEN
    					Ip = IPConfig.IPAddress(i) or IPv4
    				END IF
    				
    		Next
    	End If
    Next
    
    WScript.Echo ip


    Fábio de Paula Junior

    • Marcado como Resposta Marcelo TI quinta-feira, 22 de março de 2012 13:41
    quinta-feira, 22 de março de 2012 13:03
    Moderador

Todas as Respostas

  • Ba galera

    Alguem sabe com fazer para coletar somente o IPv4 de uma placa que tenha os dois protocolos ativos porem somente o IPv4 com IP configurado por dhcp ou fixo ?

    terça-feira, 20 de março de 2012 18:47
  • Marcelo,

    Você pode verificar se existe a string "." dentro do IP, se for IPv6 não vai ter "." apenas números e ":"

    On error resume next
    strcomputer = "."
    
    '-----------------------------------------------------------------------------------------
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set NET = objwmiservice.execquery("SELECT * FROM Win32_NetworkAdapterConfiguration")
    For Each IPConfig In NET
    	If Not IsNull(IPConfig.IPAddress) Then
    		For i = LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
    				
    				IF INSTR(IPConfig.IPAddress(i),".") THEN
    					Ip = IPConfig.IPAddress(i) or IPv4
    				END IF
    				
    		Next
    	End If
    Next
    
    WScript.Echo ip


    Fábio de Paula Junior

    • Marcado como Resposta Marcelo TI quinta-feira, 22 de março de 2012 13:41
    quinta-feira, 22 de março de 2012 13:03
    Moderador
  • Ba trilegal tche.

    Obrigado Fabião.

    quinta-feira, 22 de março de 2012 13:42