Si verifico con google , puedo ver mi IP pública. ¿Hay algo en la línea de comandos de Ubuntu que me dará la misma respuesta?
networking
kfmfe04
fuente
fuente

notify-send.ifconfig eth1 | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*inet *([^ ]+).*/\2/p}'donde eth1 es el dispositivo de red de interés, puede omitir la cadena 'et1' para mostrar todos los ips de todos los adaptadores. En lugar de\2usted, puede escribir\1 \2para mostrar los nombres de cada adaptador también.Respuestas:
Si no está detrás de un enrutador, puede averiguarlo usando
ifconfig.Si está detrás de un enrutador, su computadora no sabrá acerca de la dirección IP pública ya que el enrutador realiza una traducción de la dirección de red. Puede preguntarle a algún sitio web cuál es su dirección IP pública
curlowgetextraer la información que necesita de él:o más corto
fuente
curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'Otras posibilidades se enumeran aquí: go2linux.org/what-is-my-public-ip-address-with-linuxPara encontrar la IP externa, puede usar servicios externos basados en la web o usar métodos basados en el sistema. La más fácil es usar el servicio externo, también las
ifconfigsoluciones basadas funcionarán en su sistema solo si no está detrás de aNAT. Los dos métodos se han discutido a continuación en detalle.Encontrar IP externa usando servicios externos
La forma más fácil es utilizar un servicio externo a través de un navegador de línea de comandos o una herramienta de descarga. Como
wgetestá disponible por defecto en Ubuntu, podemos usar eso.Para encontrar su ip, use-
Cortesía :
También puede usar
lynx(navegador) ocurlen lugar dewgetpequeñas variaciones al comando anterior, para encontrar su IP externa.Utilizando
curlpara encontrar la ip:Para una salida con mejor formato use:
Un método más rápido (posiblemente el más rápido) que se utiliza
digconOpenDNScomo resolución:Copiado de: https://unix.stackexchange.com/a/81699/14497
Encontrar IP externo sin depender de servicios externos
Escriba lo siguiente en su terminal:
En lo anterior, reemplace
<interface_name>con el nombre de su interfaz real, por ejemplo:eth0,eth1,pp0, etc ...Ejemplo de uso:
Escriba lo siguiente en su terminal (esto obtiene el nombre y la dirección IP de cada interfaz de red en su sistema):
Ejemplo de uso:
NB: Las salidas son indicativas y no reales.
Cortesía: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
ACTUALIZAR
LANG=cse ha agregado a losifconfigusos basados, para que siempre proporcione la salida en inglés, independientemente de la configuración regional.fuente
sudo apt-get install wget-wopción curl en lugar de echo :)curl -w '\n' ident.meMi favorito siempre ha sido:
Simple, fácil de escribir.
Tendrás que instalar curl primero;)
Si ifconfig.me no funciona, pruebe con icanhazip.com o ipecho.net
o
fuente
ifconfig.meparece bastante más lento queipecho.net.curlpero tienewget:wget -U curl -qO- ifconfig.meicanhazip.com es mi favorito.
Puede solicitar IPv4 explícitamente:
Si no tiene
curl, puede usarwgeten su lugar:fuente
He encontrado que todo es molesto y lento, así que escribí el mío. Es simple y rápido.
Su API está en http://api.ident.me/
Ejemplos:
fuente
time curl http://checkip.amazonaws.com->0.91svs.241sforident.meOremos, aws no baja;)Puede usar una solicitud DNS en lugar de una solicitud HTTP para averiguar su IP pública:
Utiliza el
resolver1.opendns.comservidor dns para resolver elmyip.opendns.comnombre de host mágico en su dirección IP.fuente
curl icanhazip.com. Promedio de lacurlversión: 174 ms. Promedio para la versión solo de DNS: 9 ms. ~ 19 veces más rápido. Ver también: unix.stackexchange.com/a/81699/8383curlsí es más lento quedig. Incluso si se reescribieran para ser lo más similares posible,curlaún sería más lento; usa HTTP ( incluido DNS) ydigsolo usa DNS.Amazon AWS
Salida de muestra:
Me gusta porque:
fuente
El que estoy usando es:
Sí, puedes tener ip :-)
fuente
curl icanhazip.comveceswgetsea el único disponible, pero a veces nowgetestá disponible también ycurles su única opción (como OS / X). De cualquier maneracurl icanhazip.comes casi tan fácil comocurl ifconfig.memucho más divertido ;-)Escriba esto exactamente, presione Enterdonde se indica:
telnet ipecho.net 80EnterGET /plain HTTP/1.1EnterHOST: ipecho.netEnterBROWSER: web-kitEnterEnter
Esto envía manualmente una solicitud HTTP, que devolverá su IP en la parte inferior de un
HTTP/1.1 200 OK replySalida de ejemplo:
fuente
Otro rápido (bien podría ser el más rápido, relativamente)
fuente
Para esto, STUN fue inventado. Como cliente, puede enviar una solicitud a un servidor STUN disponible públicamente y hacer que le devuelva la dirección IP que ve. Una especie de whatismyip.com de bajo nivel, ya que no utiliza HTTP ni servidores DNS inteligentemente diseñados, sino el protocolo STUN increíblemente rápido.
Utilizando
stunclientSi ha
stunclientinstalado (apt-get install stuntman-clienten debian / ubuntu) simplemente puede hacer:dónde
A.B.C.Destá la dirección IP de su máquina en la red local y dónde se encuentran losW.X.Y.Zservidores de direcciones IP como los sitios web desde el exterior (y el que está buscando). Si lo usased, puede reducir la salida anterior a solo una dirección IP:Sin embargo, su pregunta era cómo encontrarlo usando la línea de comando, lo que podría excluir el uso de un cliente STUN. Entonces me pregunto ...
Utilizando
bashUna solicitud STUN puede ser hecha a mano, enviada a un servidor STUN externo usando
netcaty ser procesada posteriormente usandodd,hexdumpysedasí:El eco define una solicitud STUN binaria (0x0001 indica Solicitud de enlace) que tiene una longitud 8 (0x0008) con cookie 0xc00cee y algunas cosas pegadas de wireshark. Solo los cuatro bytes que representan la IP externa se toman de la respuesta, se limpian e imprimen.
Funciona, pero no se recomienda para uso en producción :-)
PD Muchos servidores STUN están disponibles, ya que es una tecnología central para SIP y WebRTC. Usar uno de Mozilla debería ser seguro en cuanto a privacidad, pero también podría usar otro: lista de servidores STUN
fuente
Tengo un servicio estúpido para esto por telnet. Algo como esto:
Sientase libre de usarlo.
fuente
Usted puede leer una página web utilizando sólo golpe, sin que
curl,wget:fuente
checkip.amazonaws.comes el más rápido para míPara aquellos de nosotros con acceso de inicio de sesión a nuestros enrutadores, el uso de un script para preguntar al enrutador cuál es su dirección IP WAN es la forma más eficiente de determinar la dirección IP externa. Por ejemplo, el siguiente script de Python imprime la IP externa para mi enrutador Medialink MWN-WAPR300N:
Tenga en cuenta que esto no es muy seguro (como es el caso de las credenciales de texto sin formato y el inicio de sesión en la mayoría de los enrutadores), y ciertamente no es portátil (debe cambiarse para cada enrutador). Sin embargo, es una solución muy rápida y perfectamente razonable en una red doméstica físicamente segura.
Para personalizar el script para otro enrutador, recomiendo usar el complemento tamperdata en firefox para determinar qué solicitudes HTTP deben hacer.
fuente
router = subprocess.check_output(['ip', '-o', 'ro', 'list', '0.0.0.0/0']).split()[2].Estos obtendrán las IP locales:
o para salida más corta:
además
y probablemente:
Esto debería obtener la IP externa
Nota: si no le importa instalar
curl, esto también:fuente
ifconfig | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*addr: *([^ ]+).*/\1,\2/p}'imprimirá las interfaces locales y las IP de V4 correspondientesifconfig | sed -nre '/^[^ ]+/{N;N;s/^([^ ]+).*addr: *([^ ]+).*addr: *([^ ]+).*/\1,\2,\3/p}'- IPs v4 y v6.UPnP puede consultar muchos enrutadores domésticos:
Luego, grep la dirección IP de la respuesta.
fuente
Si está utilizando DD-WRT , esto funciona para mí:
o
Donde 192.168.1.1 es la dirección IP de la puerta de enlace / enrutador LAN del enrutador DD-WRT.
El componente -s significa silencioso (es decir, no muestra la información de progreso del rizo).
fuente
Si ha instalado lynx en Ubuntu escriba
fuente
curl bot.whatismyipaddress.comtambién funcionauso
ip!luego busque el adaptador relevante (no
lo, y generalmenteeth0), y localice la dirección IP cercainet.fuente
Tal vez llego un poco tarde, pero inxi puede hacerlo bastante fácil.
Instalar en pc
inxiLuego ejecuta el siguiente comando
Ejemplo con mi información bloqueada usando la
zopción de copiar y pegar en sitios como este:Donde dice
<filter>es donde aparecerán su IP WAN, IPv4, dirección MAC, etc.fuente
Simplemente emita un traceroute para cualquier sitio web o servicio.
La línea 2 siempre parece ser mi dirección IP pública después de pasar la puerta de enlace de mi enrutador.
Entonces, haz un comando bash.
Y la salida ...
No creo que confiar en los scripts PHP y el tipo sea una buena práctica.
fuente
Un comando sin dependencias excepto 8.8.8.8 que es un DNS de Google:
fuente