Como obter o endereço IPv4 no PowerShell

  1. Use Get-NetIPAddress para obter o endereço IPv4 em uma variável no PowerShell
  2. Use Get-NetIPConfiguration para obter o endereço IPv4 em uma variável no PowerShell
  3. Use Dns class para obter o endereço IPv4 em uma variável no PowerShell
  4. Use Get-WmiObject para obter o endereço IPv4 em uma variável no PowerShell
  5. Use Test-Connection para obter o endereço IPv4 em uma variável no PowerShell
  6. Use Get-CimInstance para obter o endereço IPv4 em uma variável no PowerShell
  7. Conclusão
Como obter o endereço IPv4 no PowerShell

Administradores de sistema podem realizar várias tarefas no PowerShell, incluindo tarefas de rede.

Por exemplo, o PowerShell permite listar endereços IP e configurações de IP, fazer ping em um computador, recuperar propriedades do adaptador de rede, executar tarefas de configuração DHCP e criar/remover um compartilhamento de rede.

IP significa Protocolo da Internet, e v4 significa Versão Quatro.

Um endereço IPv4 é um inteiro de 32 bits que identifica uma interface de rede em uma máquina. É expresso em notação decimal pontuada.

Possui quatro campos de 8 bits separados por pontos, e cada campo de 8 bits representa um byte do endereço IPv4. Este tutorial irá ensiná-lo a obter um endereço IPv4 em uma variável no PowerShell.

Use Get-NetIPAddress para obter o endereço IPv4 em uma variável no PowerShell

O cmdlet Get-NetIPAddress obtém a configuração do endereço IP, como endereços IPv4, endereços IPv6 e as interfaces IP associadas a endereços.

Quando executado sem parâmetros, imprime toda a configuração do endereço IP para o computador.

O parâmetro --AddressFamily é usado para especificar um array de famílias de endereços IP. O Get-NetIPAddress obtém a configuração do endereço IP que corresponde às famílias de endereços com este parâmetro.

Os valores aceitos são IPv4 e IPv6.

Por exemplo, o comando abaixo obtém informações sobre a configuração do endereço IP para todos os endereços IPv4 no computador.

Get-NetIPAddress -AddressFamily IPv4

Este comando obtém apenas o endereço IPv4 do computador.

(Get-NetIPAddress | Where-Object { $_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00" }).IPAddress

No trecho de código fornecido, utilizamos o cmdlet Get-NetIPAddress para coletar dados do endereço IP, seguido pelo cmdlet Where-Object para filtrar resultados com base em critérios específicos encapsulados entre chaves. As condições dentro do bloco Where-Object, denotadas pelos operadores de comparação -eq e -lt, visam endereços IP no estado Preferido e aqueles com um tempo de vida válido menor que 24 horas, respectivamente.

Ao acessar a propriedade IPAddress dos resultados filtrados, encerrada em parênteses, isolamos e exibimos os endereços IPv4 que atendem às condições estabelecidas. Esta análise concisa destaca a abordagem orientada a pipelines no PowerShell, onde cada cmdlet processa eficientemente fluxos de dados para produzir saídas refinadas.

Saída:

obter endereço ip do powershell - saída 1

Você também pode usar o seguinte comando para obter um endereço IPv4 no PowerShell.

Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $(Get-NetConnectionProfile | Select-Object -ExpandProperty InterfaceIndex) | Select-Object -ExpandProperty IPAddress

No exemplo de código fornecido, utilizamos o cmdlet Get-NetIPAddress para buscar informações sobre o endereço IP. Ao especificar -AddressFamily IPv4, restringimos os resultados a endereços IPv4.

O parâmetro -InterfaceIndex é preenchido com o índice da interface recuperado usando Get-NetConnectionProfile, garantindo que os endereços IP associados à conexão de rede atual sejam obtidos. Finalmente, usamos Select-Object -ExpandProperty IPAddress para extrair e exibir os endereços IP da saída.

Saída:

powershell obter endereço ip - saída 2

Use Get-NetIPConfiguration para obter o endereço IPv4 em uma variável no PowerShell

O cmdlet Get-NetIPConfiguration é uma ferramenta poderosa usada para recuperar informações sobre endereços IP em sistemas Windows. Este método fornece dados abrangentes sobre configurações de IP, incluindo endereços IPv4 e IPv6, máscaras de sub-rede, gateways padrão e status de adaptadores de rede, ajudando administradores e scripters em tarefas relacionadas à rede.

Exemplo:

(Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected" }).IPv4Address.IPAddress

No trecho de código fornecido, utilizamos o cmdlet Get-NetIPConfiguration para coletar informações sobre endereços IP, seguido pelo cmdlet Where-Object para filtrar resultados com base em critérios específicos encapsulados entre chaves. As condições dentro do bloco Where-Object, denotadas pelo operador de comparação -ne, visam configurações com um gateway padrão IPv4 não nulo e adaptadores de rede que não estão em um status Desconectado, respectivamente.

Ao acessar a propriedade IPAddress dos resultados filtrados, encerrada em parênteses, isolamos e exibimos os endereços IPv4 que atendem aos critérios estabelecidos. Esta análise concisa destaca a capacidade do pipeline do PowerShell de processar fluxos de dados de forma eficiente, permitindo saídas refinadas que ajudam em tarefas de configuração e resolução de problemas de rede.

Saída:

endereço ip do powershell - saída 3

Use Dns class para obter o endereço IPv4 em uma variável no PowerShell

A classe Dns é uma classe estática que obtém informações sobre um host específico do Sistema de Nomes de Domínio da Internet (DNS). O método GetHostAddresses retorna os endereços IP para o host especificado.

Essa abordagem pode ser particularmente útil em ambientes onde o acesso direto a cmdlets como Get-NetIPConfiguration ou Get-NetIPAddress não está disponível ou não é adequado.

Exemplo:

([System.Net.DNS]::GetHostAddresses($env:computername) | Where-Object { $_.AddressFamily -eq "InterNetwork" } | Select-Object IPAddressToString)[0].IPAddressToString

No exemplo de código fornecido, usamos [System.Net.DNS]::GetHostAddresses para recuperar os endereços IP associados ao computador local especificado por $env:computername. Em seguida, filtramos os resultados usando Where-Object para selecionar apenas endereços IPv4 (AddressFamily -eq "InterNetwork").

A seguir, usamos Select-Object IPAddressToString para extrair o endereço IP como uma representação em string. Por fim, [0].IPAddressToString seleciona o primeiro endereço IP do resultado e o exibe como uma string.

Saída:

obter endereço ip powershell - saída 4

Use Get-WmiObject para obter o endereço IPv4 em uma variável no PowerShell

O cmdlet Get-WmiObject obtém instâncias de classes de Instrumentação de Gerenciamento do Windows (WMI) ou informações sobre as classes WMI disponíveis.

A classe Win32_NetworkAdapterConfiguration é uma classe WMI que representa os atributos e comportamentos de um adaptador de rede.

Exemplo:

(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1

No trecho de código fornecido, usamos Get-WmiObject para consultar a classe Win32_NetworkAdapterConfiguration, recuperando detalhes de configuração do adaptador de rede. Em seguida, aplicamos um filtro Where-Object para selecionar configurações onde o DHCP está ativado e um gateway padrão está especificado.

Isso garante que estamos recuperando endereços IP associados a conexões de rede ativas. Por fim, usamos Select-Object -First 1 para selecionar o primeiro endereço IP dos resultados.

Saída:

powershell obter endereço ip - saída 5

Use Test-Connection para obter o endereço IPv4 em uma variável no PowerShell

O cmdlet Test-Connection envia pacotes de solicitação de eco ICMP, ou pings, para um ou mais computadores e retorna as respostas de eco. Também pode determinar se um computador específico pode ser contatado através de uma rede IP.

Exemplo:

(Test-Connection -ComputerName (hostname) -Count 1 | select -ExpandProperty IPv4Address).IPAddressToString

No exemplo de código fornecido, usamos Test-Connection para pingar um host remoto especificado por (hostname) e recuperar informações relacionadas à rede. O parâmetro -Count 1 garante que apenas uma única solicitação de eco seja enviada ao computador alvo, minimizando o tráfego de rede.

Em seguida, usamos Select-Object -ExpandProperty IPv4Address para extrair e exibir o endereço IPv4 do host remoto da saída.

Se você tiver qualquer adaptador virtual, ele retorna um endereço IPv4 de adaptadores virtuais (por exemplo, VPN, Hyper-V, Docker).

Saída:

pegar endereço IP do powershell - saída 6

Você também pode usar este comando, que retorna a mesma saída que acima.

(Test-Connection -ComputerName $env:computername -Count 1).IPv4Address.IPAddressToString

No exemplo de código fornecido, utilizamos Test-Connection para pingar o sistema local especificado por $env:computername e recuperar informações relacionadas à rede. Ao especificar -Count 1, enviamos uma única solicitação de ping ao sistema local, minimizando o tráfego de rede.

Em seguida, acessamos a propriedade IPv4Address do objeto de saída e acessamos ainda mais a propriedade IPAddressToString para recuperar o endereço IPv4 como uma string.

Saída:

endereço ip do PowerShell - saída 7

Use Get-CimInstance para obter o endereço IPv4 em uma variável no PowerShell

O cmdlet Get-CimInstance oferece uma abordagem robusta para recuperar informações do repositório de Instrumentação de Gerenciamento do Windows (WMI), permitindo que administradores consultem configurações de adaptadores de rede facilmente. Ao direcionar a classe CIM Win32_NetworkAdapterConfiguration, este método permite aos usuários obter detalhes abrangentes sobre configurações de rede, incluindo endereços IP, máscaras de sub-rede, gateways padrão e muito mais.

Exemplo:

(Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null }).IPAddress[0]

No exemplo de código fornecido, utilizamos Get-CimInstance para consultar a classe CIM Win32_NetworkAdapterConfiguration, recuperando informações sobre configurações de adaptadores de rede. O cmdlet Where-Object filtra os resultados para selecionar configurações onde a propriedade IPAddress não é nula, garantindo que apenas configurações de adaptadores de rede com endereços IP atribuídos sejam retornadas.

Ao acessar o índice [0], selecionamos o primeiro endereço IP do conjunto de resultados, o que pode ser útil ao lidar com vários adaptadores de rede ou endereços. Esta abordagem fornece aos administradores uma maneira concisa de recuperar o endereço IP principal associado ao sistema, facilitando a gestão de rede e tarefas de resolução de problemas.

Saída:

powershell obter endereço ip - saída 8

Conclusão

Neste artigo, exploramos vários métodos para recuperar o endereço IPv4 no PowerShell, aproveitando diferentes cmdlets e classes disponíveis no ecossistema PowerShell. Começando com Get-NetIPAddress, aprendemos como buscar informações sobre endereços IP com opções de filtragem específicas, seguido por Get-NetIPConfiguration, que fornece dados abrangentes sobre configurações de IP em sistemas Windows.

Em seguida, exploramos o uso da classe Dns para cenários onde o acesso direto a cmdlets não está disponível. Além disso, examinamos o uso de Get-WmiObject para consultar configurações de adaptadores de rede via WMI e Test-Connection para pingar hosts remotos e coletar detalhes do endereço IP.

Finalmente, mergulhamos na utilização do Get-CimInstance para recuperar configurações de adaptadores de rede de forma eficiente do repositório WMI. Cada método oferece vantagens únicas, atendendo a diferentes casos de uso e cenários em administração de rede e tarefas de resolução de problemas.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website