Cómo obtener la dirección IPv4 en PowerShell

  1. Usa Get-NetIPAddress para Obtener la Dirección IPv4 en una Variable en PowerShell
  2. Usa Get-NetIPConfiguration para Obtener la Dirección IPv4 en una Variable en PowerShell
  3. Usa Dns class para Obtener la Dirección IPv4 en una Variable en PowerShell
  4. Usa Get-WmiObject para Obtener la Dirección IPv4 en una Variable en PowerShell
  5. Usa Test-Connection para Obtener la Dirección IPv4 en una Variable en PowerShell
  6. Usa Get-CimInstance para Obtener la Dirección IPv4 en una Variable en PowerShell
  7. Conclusión
Cómo obtener la dirección IPv4 en PowerShell

Los administradores de sistemas pueden realizar varias tareas en PowerShell, incluidas tareas de red.

Por ejemplo, PowerShell te permite listar direcciones IP y configuración IP, hacer ping a una computadora, recuperar propiedades del adaptador de red, realizar tareas de configuración de DHCP y crear/eliminar un recurso compartido de red.

IP significa Protocolo de Internet, y v4 significa Versión Cuatro.

La dirección IPv4 son enteros de 32 bits que identifican una interfaz de red en una máquina. Se expresa en notación decimal separada por puntos.

Tiene cuatro campos de 8 bits separados por puntos, y cada campo de 8 bits representa un byte de la dirección IPv4. Este tutorial te enseñará a obtener una dirección IPv4 en una variable en PowerShell.

Usa Get-NetIPAddress para Obtener la Dirección IPv4 en una Variable en PowerShell

El cmdlet Get-NetIPAddress obtiene la configuración de la dirección IP, como direcciones IPv4, direcciones IPv6 y las interfaces IP asociadas con direcciones.

Cuando se ejecuta sin parámetros, imprime toda la configuración de dirección IP para la computadora.

El parámetro --AddressFamily se utiliza para especificar un array de familias de direcciones IP. El Get-NetIPAddress obtiene la configuración de direcciones IP que coincide con las familias de direcciones usando este parámetro.

Los valores aceptados son IPv4 y IPv6.

Por ejemplo, el comando a continuación obtiene información sobre la configuración de direcciones IP para todas las direcciones IPv4 en la computadora.

Get-NetIPAddress -AddressFamily IPv4

Este comando obtiene solo la dirección IPv4 de la computadora.

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

En el fragmento de código proporcionado, utilizamos el cmdlet Get-NetIPAddress para recopilar datos sobre direcciones IP, seguido del cmdlet Where-Object para filtrar resultados basados en criterios específicos encapsulados dentro de llaves. Las condiciones dentro del bloque Where-Object, denotadas por los operadores de comparación -eq y -lt, apuntan a direcciones IP en estado Preferido y aquellas con un tiempo de vida válido de menos de 24 horas, respectivamente.

Al acceder a la propiedad IPAddress de los resultados filtrados, encerrados entre paréntesis, aislamos y mostramos las direcciones IPv4 que cumplen con las condiciones establecidas. Este análisis conciso destaca el enfoque orientado a la canalización en PowerShell, donde cada cmdlet procesa eficientemente flujos de datos para producir salidas refinadas.

Salida:

direccion ip obtener - salida 1

También puedes usar el siguiente comando para obtener una dirección IPv4 en PowerShell.

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

En el ejemplo de código proporcionado, utilizamos el cmdlet Get-NetIPAddress para obtener información sobre direcciones IP. Al especificar -AddressFamily IPv4, restringimos los resultados a direcciones IPv4.

El parámetro -InterfaceIndex se completa con el índice de interfaz recuperado usando Get-NetConnectionProfile, asegurando que se obtengan las direcciones IP asociadas con la conexión de red actual. Finalmente, usamos Select-Object -ExpandProperty IPAddress para extraer y mostrar las direcciones IP de la salida.

Salida:

dirección ip de powershell - salida 2

Usa Get-NetIPConfiguration para Obtener la Dirección IPv4 en una Variable en PowerShell

El cmdlet Get-NetIPConfiguration es una herramienta poderosa utilizada para recuperar información de direcciones IP en sistemas Windows. Este método proporciona datos completos sobre configuraciones IP, incluidas direcciones IPv4 y IPv6, máscaras de subred, gateways por defecto y estados de adaptadores de red, ayudando a administradores y guionistas en tareas relacionadas con la red.

Ejemplo:

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

En el fragmento de código proporcionado, utilizamos el cmdlet Get-NetIPConfiguration para recopilar información sobre direcciones IP, seguido del cmdlet Where-Object para filtrar resultados basados en criterios específicos encapsulados dentro de llaves. Las condiciones dentro del bloque Where-Object, denotadas por el operador de comparación -ne, apuntan a configuraciones con un gateway por defecto IPv4 no nulo y adaptadores de red que no están en estado Desconectado, respectivamente.

Al acceder a la propiedad IPAddress de los resultados filtrados, encerrados entre paréntesis, aislamos y mostramos las direcciones IPv4 que cumplen con los criterios establecidos. Este análisis conciso destaca la capacidad de la canalización de PowerShell para procesar eficientemente flujos de datos, permitiendo salidas refinadas que ayudan en la configuración y solución de problemas de la red.

Salida:

powershell obtener dirección ip - salida 3

Usa Dns class para Obtener la Dirección IPv4 en una Variable en PowerShell

La Dns class es una clase estática que obtiene información sobre un host específico desde el Sistema de Nombres de Dominio de Internet (DNS). El método GetHostAddresses devuelve las direcciones IP para el host especificado.

Este enfoque puede ser particularmente útil al trabajar en entornos donde no hay acceso directo a cmdlets como Get-NetIPConfiguration o Get-NetIPAddress.

Ejemplo:

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

En el ejemplo de código proporcionado, usamos [System.Net.DNS]::GetHostAddresses para recuperar las direcciones IP asociadas con la computadora local especificada por $env:computername. Luego filtramos los resultados usando Where-Object para seleccionar solo direcciones IPv4 (AddressFamily -eq "InterNetwork").

A continuación, usamos Select-Object IPAddressToString para extraer la dirección IP como una representación de cadena. Finalmente, [0].IPAddressToString selecciona la primera dirección IP del resultado y la muestra como una cadena.

Salida:

powershell obtener dirección ip - salida 4

Usa Get-WmiObject para Obtener la Dirección IPv4 en una Variable en PowerShell

El cmdlet Get-WmiObject obtiene instancias de clases de Instrumentación de Gestión de Windows (WMI) o información sobre las clases WMI disponibles.

La clase Win32_NetworkAdapterConfiguration es una clase WMI que representa los atributos y comportamientos de un adaptador de red.

Ejemplo:

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

En el fragmento de código proporcionado, usamos Get-WmiObject para consultar la clase Win32_NetworkAdapterConfiguration, recuperando detalles de configuración del adaptador de red. Luego aplicamos un filtro de Where-Object para seleccionar configuraciones donde DHCP está habilitado y se especifica un gateway por defecto.

Esto asegura que recuperamos direcciones IP asociadas con conexiones de red activas. Finalmente, usamos Select-Object -First 1 para seleccionar la primera dirección IP de los resultados.

Salida:

powershell obtener dirección ip - salida 5

Usa Test-Connection para Obtener la Dirección IPv4 en una Variable en PowerShell

El cmdlet Test-Connection envía paquetes de solicitud de eco ICMP, o pings, a una o más computadoras y devuelve las respuestas de eco. También puede determinar si una computadora específica se puede contactar a través de una red IP.

Ejemplo:

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

En el ejemplo de código proporcionado, usamos Test-Connection para hacer ping a un host remoto especificado por (hostname) y recuperar información relacionada con la red. El parámetro -Count 1 asegura que solo se envíe una única solicitud de eco a la computadora de destino, minimizando el tráfico de red.

Luego usamos Select-Object -ExpandProperty IPv4Address para extraer y mostrar la dirección IPv4 del host remoto de la salida.

Si tienes adaptadores virtuales, devuelve una dirección IPv4 de adaptadores virtuales (por ejemplo, VPN, Hyper-V, Docker).

Salida:

powershell obtener dirección ip - salida 6

También puedes usar este comando, que devuelve la misma salida que la anterior.

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

En el ejemplo de código proporcionado, utilizamos Test-Connection para hacer ping al sistema local especificado por $env:computername y recuperar información relacionada con la red. Al especificar -Count 1, enviamos una sola solicitud de ping al sistema local, minimizando el tráfico de red.

Luego accedemos a la propiedad IPv4Address del objeto de salida y accedemos adicionalmente a la propiedad IPAddressToString para recuperar la dirección IPv4 como una cadena.

Salida:

powershell obtener dirección ip - salida 7

Usa Get-CimInstance para Obtener la Dirección IPv4 en una Variable en PowerShell

El cmdlet Get-CimInstance ofrece un enfoque robusto para recuperar información del repositorio de Instrumentación de Gestión de Windows (WMI), permitiendo a los administradores consultar configuraciones de adaptadores de red fácilmente. Al dirigirnos a la clase CIM Win32_NetworkAdapterConfiguration, este método permite a los usuarios obtener detalles completos sobre configuraciones de red, incluidas direcciones IP, máscaras de subred, gateways por defecto y más.

Ejemplo:

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

En el ejemplo de código proporcionado, utilizamos Get-CimInstance para consultar la clase CIM Win32_NetworkAdapterConfiguration, recuperando información sobre configuraciones de adaptadores de red. El cmdlet Where-Object filtra los resultados para seleccionar configuraciones donde la propiedad IPAddress no es nula, asegurando que solo se devuelvan configuraciones de adaptador de red con direcciones IP asignadas.

Al acceder al índice [0], seleccionamos la primera dirección IP del conjunto de resultados, lo cual puede ser útil al tratar con múltiples adaptadores de red o direcciones. Este enfoque proporciona a los administradores una forma concisa de recuperar la dirección IP principal asociada con el sistema, facilitando tareas de gestión y solución de problemas de la red.

Salida:

powershell obtener dirección ip - salida 8

Conclusión

En este artículo, exploramos varios métodos para recuperar la dirección IPv4 en PowerShell, aprovechando diferentes cmdlets y clases disponibles en el ecosistema de PowerShell. Comenzando con Get-NetIPAddress, aprendimos cómo obtener información de direcciones IP con opciones de filtrado específicas, seguido de Get-NetIPConfiguration, que proporciona datos completos sobre configuraciones IP en sistemas Windows.

Luego exploramos el uso de la clase Dns para escenarios donde no hay acceso directo a cmdlets. Además, examinamos el uso de Get-WmiObject para consultar configuraciones de adaptadores de red a través de WMI y Test-Connection para hacer ping a hosts remotos y recopilar detalles sobre direcciones IP.

Finalmente, profundizamos en la utilización de Get-CimInstance para recuperar configuraciones de adaptadores de red de manera eficiente desde el repositorio WMI. Cada método ofrece ventajas únicas, atendiendo a diferentes casos de uso y escenarios en tareas de administración de redes y solución de problemas.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
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