Cómo saber tu IP pública con un solo comando

Desde el blog de erjaimer es que me llega este muy util tip.

Sucede que erjaimer nos explica cómo en una sola línea, podemos conocer nuestra IP pública (IP real), pero además invita a cualquiera que desee mejorar la línea a hacerlo … y bueno… saben que soy un gran fan de bash, por lo que hice algún que otro cambio. Esta es mi línea:

GET http://www.vermiip.es/  | grep "Tu IP p&uacute;blica es" | cut -d ':' -f2 | cut -d '<' -f1

Veamos un screenshot del resultado que obtenemos con mis cambios:

La línea de él es la siguiente:

GET http://www.vermiip.es/ | grep "Tu IP pública es" | perl -pe 's/(.*:)||\s+//g;'

Y cómo se vería usando la línea original:

La explicación del comando original nos la brinda el mismo erjaimer en el artículo:

  1. El comando GET está en cualquier distro GNU/Linux y como su propio nombre indica nos descarga un HTML dada una URL.
  2. El siguiente  paso es observar el documento HTML para ver que IP estás nos muestra  la página. En este segundo paso obtenemos este resultado: <h2>Tu IP p&uacute;blica es: xx.xx.xxx.xxx</h2>, donde obviamente los X son números.
  3. El siguiente paso utilizaré expresiones regulares y PERL como una orden de consola, filtrando las letras, etc perl -pe ‘s/(.*:)|(<\/h2>)|(\s+)//g; , esta regex está realizada  un poco a la ligera propongo mejorarla o incluso usando grep un poco mejor se puede sacar.

Y aquí dejo yo la explicación del mío:

  1. Mediante GET descargamos el HTML de esa URL, que nos dice la IP nuestra y además montón de texto más que no deseamos.
  2. Limpiaremos todo ese código no deseado, dejando solamente la línea de la IP mediante grep.
  3. El problema está en que nos muestra la IP con un pequeño texto y tags H2, por eso ahora usando dos veces cut limpiaremos todo y solo dejaremos la IP.
  4. (1er cut) » Limpiamos el texto y el 1er tag H2 simplemente diciendo que no muestre nada que esté desde los : (dos puntos) hacia su izquierda, quedándonos solamente al final un tag H2.
  5. (1er cut) » Limpiamos este último tag H2 con el otro cut, que no mostrará nada desde el primer < hacia su derecha. Quedándonos solo la IP.

Cualquier método (comando) que usen les dará el mismo resultado, yo simplemente quise hacer mi aporte, pues al ver la línea de comando con expresiones regulares y perl, se haría complejo explicar caracter por caracter a otros jaja.

En fin, espero les guste y mil gracias a erjaimer por haber escrito el artículo original.

Saludos


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Rodolfo dijo

    Si no dispones de curl y si de wget (p.ej. mi caso en MacOSX) este comando también sirve:

    wget -nv -q -O – http://ip.appspot.com/

    (aunque como dice Edwin, ifconfig.me es lo indicado… e instalé curl en MacOSX)

  2.   Edwin dijo

    Más fácil
    curl ifconfig.me

    1.    KZKG^Gaara dijo

      O_O … no conocía ese sitio… WTF!, es GENIAL!!!
      Gracias por el dato amigo, super interesante jeje.

      PD: Ahora me siento como un idiota por usar toda una cadena de instrucciones cuando tú lo lograste hacer con 2 palabras JAJAJA

    2.    Ariel dijo

      EXELENTE, con sólo instalar curl y ese comando, funciona genial!

  3.   Santiago dijo

    Muy buen aporte! Igualmente es muy útil porque no requiere nada extra instalado. Probé con CURL pero me pide que instale el paquete.

    Saludos.

    1.    KZKG^Gaara dijo

      Ah, CURL no viene igual en el sistema por defecto? O_O
      Bueno, gracias por lo de buen aporte, se hace lo que se puede 🙂

      Saludos y gracias amigo

  4.   lesterzone dijo

    WTF!! genial la explicación de (copy-paste, xD núnca he escrito ese nickname) KZKG^Gaara. Edwin, bueno, genial, ese método no lo conocía. Gracias por compartir.

    1.    KZKG^Gaara dijo

      hahaha gracias amigo 🙂

  5.   Alejandro Mora dijo

    O con:
    curl -s http://ip.appspot.com/

  6.   Oberost dijo

    Como dice el refran, a la cama no te iras sin saber una cosa mas

  7.   Sergio dijo

    Genial ese modo, no conocía ese servicio.

    Al autor de este artículo comentarle, que la imagen que tiene de fondo en el emulador de terminal dificulta la lectura.

  8.   fraterneo dijo

    Está buenísimo. Sin embargo así es más fácil:
    $ curl ifconfig.me

    1.    KZKG^Gaara dijo

      JAJA síp ya lo comentaron más arriba, me siento un poco mal por haber tenido que usar toda una cadena de instrucciones jejeje

  9.   B1tblu3 dijo

    gracias, muy util

  10.   Algabe dijo

    Buen tip…(es bueno saberlo).

  11.   davervozbox dijo

    Otros métodos:
    Conocer mi IP Pública:
    wget -qO- ifconfig.me/ip
    wget -qO- ifconfig.me/host

  12.   Hugo dijo

    Bueno, al menos en Debian, alternativamente se puede utilizar el navegador de consola por defecto:

    www-browser http://ifconfig.me

    Yo suelo usar elinks o w3m

  13.   proper dijo

    Qué comandos más complicados Gaara!! yo uso

    wget -qO- icanhazip.com

  14.   taregon dijo

    Jajaja, buenisimo.

  15.   Blazek dijo

    Muy bueno, no conocia esta forma. Nunca te acostaras sin aprender nada nuevo.

    1.    KZKG^Gaara dijo

      Eso mismo pensé yo cuando ví todas las formas de hacer esto jaja

  16.   manolox dijo

    Yo tengo uno parecido. El resultado es el mismo.
    wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

    Si esto lo ponemos en un script y le añadimos para que lo muestre en pantalla con zenity (p.e), queda una «aplicación» muy chula

    Sería así la cosa:
    #!/bin/sh

    IPPUBLICA=$(wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//')

    zenity --info --text="Tu IP es: $IPPUBLICA"

    Saludos

  17.   jorgenator2 dijo

    Ni wget viene instalado por defecto en algunas distribuciones, así que curl es el más apropiado al respecto

    1.    KZKG^Gaara dijo

      curl viene instalado por defecto en todas?

  18.   heavynetol dijo

    Yo lo hago así, tengo un alias xD:
    alias myip=’wget http://automation.whatismyip.com/n09230945.asp -O – 2> /dev/null; echo’

    Pero la del CURL me dejó boqueabierto.

    ¡Saludos!

  19.   elwuilmer dijo

    Considero que existe muchos métodos (maneras) para obtener la ip publica y que cada quien es libre de escoger la suya, con la que mas se identifique, a mi particularmente me gusta usar:

    wget -qO- ifconfig.me/ip

    Una sugerencia de mi parte es editar el post y colocar cada una de las alternativas que existen para Saber la ip publica y que sea el lector libre de escoger el método a utilizar.

  20.   Matias dijo

    ve al «panel de control» ahy seleccionas «conexiones de red» luego de abrirla haces click dercho sobre la conexion que este funcionando (esta sera las que tenga 2 pc de color azul) y selecionas «propiedades» en la nueva vantana que se abrira has click sobre «protocolos de internet» y luego en la opcion «propiedades» ahy podras observar tu direccion de IP

    Si te gusto me respues, votame! https://es.answers.yahoo.com/question/index?qid=20080731112416AAVDKNz

  21.   Pablo dijo

    Me fue de gran ayuda encontrar toda la infromacion que brindan en la pagina. Pude seguir los pasos y conocer mi IP Publica.En esta otra pagina http://www.gurugles.com/internet-y-computadoras/cual-es-mi-ip-publica/ . Tambien encontre muchisimas respuestas acerca de las IP, muy claras, para los que no entendemos mucho del tema.

  22.   Anónimo dijo

    curl es lo maximo