Usuário com melhor resposta
Validar IP do Computador

Pergunta
-
Boa Tarde.
Pessoal, como consigo validar o resultado do script abaixo.
$computername = "teste"
get-wmiobject win32_networkadapterconfiguration -filter "IPEnabled='True'" -computer $computername | Select @{Name="IPv4";Expression={ $_.IPAddress -match $ip4}}
#Resultado do Comando:
IPv4 ----
{10.101.14.52, fe80::986d:6177:3ff5:c738}
Gostaria de testar o resultado desse comando verificando se ele faz parte de um determinado range ou vlan.
if ($testewifi -match '10.100.')
{
Write-Host "Conexao é Wifi"
}
else {
write-host "Conexao é cabeada"
}
Tentei usar a sintaxe abaixo sem sucesso:
$computername = "teste"
$testewifi = get-wmiobject win32_networkadapterconfiguration -filter "IPEnabled='True'" -computer $computername | Select @{Name="IPv4";Expression={ $_.IPAddress -match $ip4}}
O resultado de write-host $testewifi é @{IPv4=System.Object[]}
Como posso solucionar este problema.
Grato- Editado JefersonL quarta-feira, 2 de outubro de 2013 16:51
Respostas
-
Jeferson,
Fiz algumas modificações mas que no final acho que chega no resultado que você quer.
#Recupera Lista de IPs $h="teste" $ListaIPs = [Net.DNS]::GetHostAddresses($h) | ? {$_.AddressFamily -eq 'InterNetwork'} | select IPAddressToString #Transforma Resultado em um Array $testewifi=@() $ListaIPs | % {$testewifi += $_.IPAddressToString} #Verifica se faz parte de subrede if ($testewifi -like '10.100.*') { Write-Host "Conexao é Wifi" } else { write-host "Conexao é cabeada" }
As principais modificações:
1.Usei um objeto .net ao invés do get-wmi
2.Transformei o resultado em uma array
3.ao invés de usar o match eu usei o LIKE, o match procura como se fosse o Like usando astericos dos dois lados da string, mas para saber a subrede eu prefiro deixar o asterisco no final.
Fábio de Paula Junior
- Editado Fábio JrModerator quinta-feira, 3 de outubro de 2013 00:16
- Marcado como Resposta JefersonL quinta-feira, 3 de outubro de 2013 10:37
Todas as Respostas
-
Jeferson,
Fiz algumas modificações mas que no final acho que chega no resultado que você quer.
#Recupera Lista de IPs $h="teste" $ListaIPs = [Net.DNS]::GetHostAddresses($h) | ? {$_.AddressFamily -eq 'InterNetwork'} | select IPAddressToString #Transforma Resultado em um Array $testewifi=@() $ListaIPs | % {$testewifi += $_.IPAddressToString} #Verifica se faz parte de subrede if ($testewifi -like '10.100.*') { Write-Host "Conexao é Wifi" } else { write-host "Conexao é cabeada" }
As principais modificações:
1.Usei um objeto .net ao invés do get-wmi
2.Transformei o resultado em uma array
3.ao invés de usar o match eu usei o LIKE, o match procura como se fosse o Like usando astericos dos dois lados da string, mas para saber a subrede eu prefiro deixar o asterisco no final.
Fábio de Paula Junior
- Editado Fábio JrModerator quinta-feira, 3 de outubro de 2013 00:16
- Marcado como Resposta JefersonL quinta-feira, 3 de outubro de 2013 10:37
-
Jeferson,
Fiz algumas modificações mas que no final acho que chega no resultado que você quer.
#Recupera Lista de IPs $h="teste" $ListaIPs = [Net.DNS]::GetHostAddresses($h) | ? {$_.AddressFamily -eq 'InterNetwork'} | select IPAddressToString #Transforma Resultado em um Array $testewifi=@() $ListaIPs | % {$testewifi += $_.IPAddressToString} #Verifica se faz parte de subrede if ($testewifi -like '10.100.*') { Write-Host "Conexao é Wifi" } else { write-host "Conexao é cabeada" }
As principais modificações:
1.Usei um objeto .net ao invés do get-wmi
2.Transformei o resultado em uma array
3.ao invés de usar o match eu usei o LIKE, o match procura como se fosse o Like usando astericos dos dois lados da string, mas para saber a subrede eu prefiro deixar o asterisco no final.
Fábio de Paula Junior
Valeu Fábio funcionou perfeitamente aqui.