Contents

PowerShell one-liners: Obtener IP pública

Una vez iniciada la serie sobre one-liners de PowerCLI es turno de arrancar con los one-liners de PowerShell. En esta primera entrega veremos cómo obtener la IP pública de la máquina que ejecuta el one-liner con PowerShell.

Ya de entrada puedes preguntarte: ¿por qué querría hacerlo desde PowerShell si lo puedo consultar desde el navegador? Aquí van algunos ejemplos:

  • Para incorporarlo a un script que, por ejemplo, modifique el comportamiento según la línea WAN por la que esté saliendo.
  • Si estás administrando un sistema operativo Windows Server Core en el que no hay navegador.
  • Porque puedes hacerlo. (obviamente la razón más importante)

Obtener IP pública con PowerShell

Para obtener la dirección IP nos valdremos de uno de tantos servicios online que permiten consultarla. Éstos son algunos:

Si pinchamos en cualquiera de los links veremos que dichas webs nos devuelven nuestra IP pública en texto plano, por lo que lo hace ideal para ser consultado desde la línea de comandos. Para obtener el contenido de una web en PowerShell disponemos de Invoke-WebRequest:

1
Invoke-WebRequest ident.me | Select -ExpandProperty Content

Vamos a desglosar la línea:

  • Invoke-WebRequest ident.me: Nos valemos de Invoke-WebRequest para hacer una consulta a la web ident.me, la cual nos devuelve un objeto Microsoft.PowerShell.Commands.HtmlWebResponseObject.
  • Select -ExpandProperty Content: Obtenemos el contenido de la propiedad “Content”, en el este caso un string con la dirección IP.

A partir de ahí ya podemos asignar la salida a una variable, mostrarla o lo que necesitemos hacer con ella.