¿Por qué obtengo resultados diferentes para mi IP cuando escribo google "Cuál es mi IP" y cuando escribo en la terminal de macOS "ifconfig |grep inet"?

Obtengo diferentes resultados para mi IP cuando escribo google "Cuál es mi IP" y cuando escribo en la terminal de macOSifconfig |grep inet

¿Por qué estos resultados son diferentes en macOS versión 10.13.2 High Sierra?

Respuestas (3)

A menos que su computadora esté directamente conectada a su ISP a través del módem, la dirección IP de su computadora en realidad es asignada por su enrutador (ya sea proporcionado por el ISP o usted mismo). La dirección IP que ve cuando visita un sitio web de whatsmyip es la dirección IP pública que el ISP ha asignado a su enrutador, que es la única dirección IP con la que los dispositivos en Internet pueden hablar cuando intentan comunicarse con un dispositivo en su red. Usando una técnica llamada Traducción de direcciones de red, su enrutador permite que múltiples dispositivos (por ejemplo, su computadora portátil, su teléfono y su PlayStation) compartan esa única dirección IP pública de su ISP entre cada uno de los dispositivos.

Es probable que sus dispositivos conectados a su red interna tengan direcciones IP como 192.168.XXX.XXX o 172.16.XXX.XXX - 172.31.XXX.XXX o 10.XXX.XXX.XXX. Estas son direcciones IP privadas reservadas para redes internas y no se pueden utilizar en Internet en general.

La que obtiene de Google es su dirección externa, su dirección pública, que en realidad está asignada a la conexión WAN (externa) de su enrutador por su ISP.

El de ifconfiges su dirección privada interna, que se asigna desde la interfaz LAN (interna) de su enrutador.

Puede usar la utilidad de almacenamiento en caché para encontrar su dirección IP pública externa:

AssetCacheLocatorUtil 2>&1 | awk '/This.*public/{sub(/\.$/, ""); print $NF}'

Su enrutador utiliza una estructura conocida como NAT (traducción de direcciones de red) para que los paquetes destinados a usted se envíen a la computadora correcta, sin exponer su dirección interna al mundo exterior.

Enlace de Wikipedia a la traducción de direcciones de red , que, sinceramente, no necesita saber ni comprender;)

Me encantó el método que usaba AssetCacheLocatorUtil, así que lo mejoré un poco extrayendo solo la IP de la cadena:

AssetCacheLocatorUtil 2>&1 | grep public | grep This | awk '{match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/); ip = substr($0,RSTART,RLENGTH); print ip}'
En este caso, realmente no hay una buena razón o necesidad práctica de canalizar dos veces la salida de AssetCacheLocatorUtilthru grepy luego awkcuando la salida de AssetCacheLocatorUtilpuede ser procesada solo por awk. Si el sistema tiene una dirección IP pública, el siguiente comando devuelve solo la dirección IP pública, o nada si no:AssetCacheLocatorUtil 2>&1 | awk '/This.*public/{sub(/\.$/, ""); print $NF}'