En el pasado vimos cómo podíamos descubrir nuestra IP externa desde línea de comandos en Linux, sirviéndonos tanto de cURL como del comando wget. Como ahora ya todos sabéis que soy un apaniaguado del Tito Bill vamos a ver cómo hacerlo con el PowerShell de Microsoft.
Como siempre, cuando se trata de la IP externa, tenemos que recurrir a un servicio web externo. Hay un buen montón de opciones para esto, pero por comodidad (comodidad para mí, porque ya tengo las pruebas hechas con ese) recurriremos a https://api.ipify.org
En PowerShell podemos usar el cmdlt Invoke-WebRequest para lanzar peticiones http y https a una web y recoger su respuesta. Si llamamos al api que os ponía arriba obtendremos nuestra IP.
Invoke-WebRequest -uri "https://api.ipify.org/"
¿Y ya está? Pues no, porque eso nos devolverá como texto plano además de la IP el status de la respuesta y las cabeceras, por lo que aunque podemos leer la IP sería incómodo trabajar con ella. Pero por suerte el cmdlt nos permite filtrar y obtener solo el valor que nos interesa. Tal que así:
(Invoke-WebRequest -uri "https://api.ipify.org").content
De esa forma sí que obtendríamos solo la línea con el valor de la IP, ya que accedemos únicamente al contenido de la respuesta, al valor de content. Si quisiéramos meter el valor de la IP en una variable para trabajar con un script podríamos hacerlo tal que así:
$miDirIP = (Invoke-WebRequest -uri "https://api.ipify.org/").Content