Cómo obtener la dirección IPv4 en PowerShell
-
Usa
Get-NetIPAddress
para Obtener la Dirección IPv4 en una Variable en PowerShell -
Usa
Get-NetIPConfiguration
para Obtener la Dirección IPv4 en una Variable en PowerShell -
Usa
Dns class
para Obtener la Dirección IPv4 en una Variable en PowerShell -
Usa
Get-WmiObject
para Obtener la Dirección IPv4 en una Variable en PowerShell -
Usa
Test-Connection
para Obtener la Dirección IPv4 en una Variable en PowerShell -
Usa
Get-CimInstance
para Obtener la Dirección IPv4 en una Variable en PowerShell - Conclusión

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:
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:
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:
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:
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:
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:
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:
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:
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.