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\2
usted, puede escribir\1 \2
para 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
curl
owget
extraer 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
ifconfig
soluciones 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
wget
está disponible por defecto en Ubuntu, podemos usar eso.Para encontrar su ip, use-
Cortesía :
También puede usar
lynx
(navegador) ocurl
en lugar dewget
pequeñas variaciones al comando anterior, para encontrar su IP externa.Utilizando
curl
para 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
dig
conOpenDNS
como 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=c
se ha agregado a losifconfig
usos basados, para que siempre proporcione la salida en inglés, independientemente de la configuración regional.fuente
sudo apt-get install wget
-w
opción curl en lugar de echo :)curl -w '\n' ident.me
Mi 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.me
parece bastante más lento queipecho.net
.curl
pero tienewget
:wget -U curl -qO- ifconfig.me
icanhazip.com es mi favorito.
Puede solicitar IPv4 explícitamente:
Si no tiene
curl
, puede usarwget
en 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.91s
vs.241s
forident.me
Oremos, aws no baja;)Puede usar una solicitud DNS en lugar de una solicitud HTTP para averiguar su IP pública:
Utiliza el
resolver1.opendns.com
servidor dns para resolver elmyip.opendns.com
nombre de host mágico en su dirección IP.fuente
curl icanhazip.com
. Promedio de lacurl
versió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/8383curl
sí es más lento quedig
. Incluso si se reescribieran para ser lo más similares posible,curl
aún sería más lento; usa HTTP ( incluido DNS) ydig
solo usa DNS.Amazon AWS
Salida de muestra:
Me gusta porque:
fuente
El que estoy usando es:
Sí, puedes tener ip :-)
fuente
curl icanhazip.com
veceswget
sea el único disponible, pero a veces nowget
está disponible también ycurl
es su única opción (como OS / X). De cualquier maneracurl icanhazip.com
es casi tan fácil comocurl ifconfig.me
mucho más divertido ;-)Escriba esto exactamente, presione Enterdonde se indica:
telnet ipecho.net 80
EnterGET /plain HTTP/1.1
EnterHOST: ipecho.net
EnterBROWSER: web-kit
EnterEnter
Esto envía manualmente una solicitud HTTP, que devolverá su IP en la parte inferior de un
HTTP/1.1 200 OK reply
Salida 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
stunclient
Si ha
stunclient
instalado (apt-get install stuntman-client
en debian / ubuntu) simplemente puede hacer:dónde
A.B.C.D
está la dirección IP de su máquina en la red local y dónde se encuentran losW.X.Y.Z
servidores 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
bash
Una solicitud STUN puede ser hecha a mano, enviada a un servidor STUN externo usando
netcat
y ser procesada posteriormente usandodd
,hexdump
ysed
así: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.com
es 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.com
tambié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
inxi
Luego ejecuta el siguiente comando
Ejemplo con mi información bloqueada usando la
z
opció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