Esto muestra mi dirección IP interna (a mi enrutador) (por ejemplo, 192.168.1.xxx), no la dirección IP externa. (Al igual que la mayoría de las otras respuestas a continuación.)
ShreevatsaR
2
No funcionó para mí :(
Naveed Abbas
2
ifconfigmuestra todas las interfaces y sus IPs
aralar
44
echo IP externa:curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
grigb
30
Ha cambiado durante años, 'ipconfig getifaddr en0' es el predeterminado para la interfaz wifi
Marek Szmalc
98
Lo siguiente funciona para mí en 10.8 y en 10.10 Yosemite.
En mi opinión, debería ser la respuesta aceptada, ya que no requiere ninguna especificación por cable o inalámbrica.
Erik Nomitch
@ErikNomitch, excepto que me da 2 con esta respuesta
Zach Lysobey
Ah, me retracto entonces. @ZachLysobey
Erik Nomitch
Este es el mejor enfoque general, pero a veces es necesario hacer un poco más de trabajo antes de obtener una respuesta correcta y la respuesta correcta puede variar.
uchuugaka
Agregué un script que con suerte debería abordar este problema ... ¡para tu información!
¿Por qué el voto negativo? Aunque es una IP externa, el comando es válido y funciona para mis inicios de sesión ssh.
CousinCocaine
55
Esta es la dirección IP pública y lo que estaba buscando. ipconfig getifaddr en0es para IP local.
abriggs
En HighSierra tuve que ejecutar esto como SUDO. Además de esto, enumera la dirección IP externa. Para la dirección IP interna, vea la respuesta de Brad Parks
Vincent
19
Tengo esto configurado en un archivo de puntos .aliases para la búsqueda frecuente de IP:
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en0"
Escriba ifconfigo ifconfig -a. Este comando le muestra la lista de interfaces junto con sus direcciones IP y MAC (la última solo si corresponde). También puede escribir ifconfig en0o solo ifconfig en1para la configuración de una interfaz en particular (como alguien dijo en sus respuestas, en0 es típicamente la Ethernet cableada mientras que en1 es la interfaz WiFi).
Como alternativa, netstat -ienumerará todas las interfaces y le mostrará las direcciones IP que ha asignado a cada una de ellas.
Normalmente, cuando tiene un demonio SSH ejecutándose en una caja, escuchará en todas las interfaces disponibles, es decir. puede usar cualquier dirección IP que esté configurada en su máquina para conectarse a esa máquina a través de SSH (esto, obviamente, sujeto a las reglas de Firewall). Si busca lo que el sistema operativo llama una interfaz primaria y una dirección IP primaria, puede usar el scutilcomando de esta manera:
MacBook:~ scutil
> show State:/Network/Global/IPv4<dictionary>{PrimaryInterface: en0
PrimaryService: C0550F84-5C07-484F-8D62-C8B90DC977D8
Router:10.103.4.1}> show State:/Network/Interface/en0/IPv4<dictionary>{Addresses:<array>{0:10.103.4.234}BroadcastAddresses:<array>{0:10.103.4.255}SubnetMasks:<array>{0:255.255.255.0}}
Tenga en cuenta que lo anterior, aunque es un comando de línea de comandos, también es interactivo (por lo que debe ejecutar scutily luego ingresar sus propios comandos). El primer showcomando le indica el nombre de la interfaz principal para el sistema operativo (es decir, esta será la que figura en la parte superior de la lista en la ventana Preferencias del sistema / Preferencias de red), así como la dirección IP de su enrutador predeterminado. El segundo showcomando toma State:/Network/Interface/<ifname>/IPv4argumento (en este caso en0) y le da las direcciones IP asignadas. Está buscando la dirección en la matriz de Direcciones, las otras dos entradas son direcciones de difusión y las máscaras de red.
Espero que ayude, pero si algo no está claro, hágamelo saber.
Gracias por esta respuesta Escribí un script rápido para obtener la IP de su interfaz principal:echo "show State:/Network/Interface/$(echo 'show State:/Network/Global/IPv4' | scutil | grep 'PrimaryInterface ' | sed 's/ PrimaryInterface : //')/IPv4" | scutil | pcregrep -Mo1 " Addresses : <array> {\n 0 : ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})"
DC_
4
Para obtener la dirección IP de su computadora frente a Internet, aquí hay una receta funcional:
Debería funcionar incluso cuando tiene varias interfaces activas, incluso cuando tiene interfaces que no sabe cuál es realmente la puerta de enlace predeterminada.
Esto obtiene la dirección IP de la red interna (por ejemplo 192.168.0.*), no la externa expuesta a Internet.
SimplGy
Gracias por este comentario ¿Podría decirme en qué versión del sistema operativo está? ¿Me podría proporcionar la salida de netstat -nr | grep default?
dan
Esto obtiene la IP de la interfaz que sirve el tráfico entrante / saliente. Si está detrás de NAT, eso le dará su dirección LAN, no la dirección WAN. Pero puede ser útil para muchos propósitos y no llega a la red.
folex
1
Solo para el registro, puede hacer un script bash con el siguiente contenido que le proporciona su dirección IP externa
Respuestas:
Usar
ipconfig getifaddr en1
para conexión inalámbrica oipconfig getifaddr en0
para ethernet.Actualización :
ipconfig getifaddr en0
es el predeterminado para la interfaz wifi.fuente
ifconfig
muestra todas las interfaces y sus IPscurl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
Lo siguiente funciona para mí en 10.8 y en 10.10 Yosemite.
Si encuentra que lo anterior le da más de una respuesta, guarde lo siguiente en un script y ejecútelo
ip_address.sh
fuente
Solo escribe
curl ifconfig.me
en la terminal.fuente
ipconfig getifaddr en0
es para IP local.Tengo esto configurado en un archivo de puntos .aliases para la búsqueda frecuente de IP:
fuente
Puedes hacer lo siguiente:
Escriba
ifconfig
oifconfig -a
. Este comando le muestra la lista de interfaces junto con sus direcciones IP y MAC (la última solo si corresponde). También puede escribirifconfig en0
o soloifconfig en1
para la configuración de una interfaz en particular (como alguien dijo en sus respuestas, en0 es típicamente la Ethernet cableada mientras que en1 es la interfaz WiFi).Como alternativa,
netstat -i
enumerará todas las interfaces y le mostrará las direcciones IP que ha asignado a cada una de ellas.Normalmente, cuando tiene un demonio SSH ejecutándose en una caja, escuchará en todas las interfaces disponibles, es decir. puede usar cualquier dirección IP que esté configurada en su máquina para conectarse a esa máquina a través de SSH (esto, obviamente, sujeto a las reglas de Firewall). Si busca lo que el sistema operativo llama una interfaz primaria y una dirección IP primaria, puede usar el
scutil
comando de esta manera:Tenga en cuenta que lo anterior, aunque es un comando de línea de comandos, también es interactivo (por lo que debe ejecutar
scutil
y luego ingresar sus propios comandos). El primershow
comando le indica el nombre de la interfaz principal para el sistema operativo (es decir, esta será la que figura en la parte superior de la lista en la ventana Preferencias del sistema / Preferencias de red), así como la dirección IP de su enrutador predeterminado. El segundoshow
comando tomaState:/Network/Interface/<ifname>/IPv4
argumento (en este casoen0
) y le da las direcciones IP asignadas. Está buscando la dirección en la matriz de Direcciones, las otras dos entradas son direcciones de difusión y las máscaras de red.Espero que ayude, pero si algo no está claro, hágamelo saber.
fuente
echo "show State:/Network/Interface/$(echo 'show State:/Network/Global/IPv4' | scutil | grep 'PrimaryInterface ' | sed 's/ PrimaryInterface : //')/IPv4" | scutil | pcregrep -Mo1 " Addresses : <array> {\n 0 : ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})"
Para obtener la dirección IP de su computadora frente a Internet, aquí hay una receta funcional:
Debería funcionar incluso cuando tiene varias interfaces activas, incluso cuando tiene interfaces que no sabe cuál es realmente la puerta de enlace predeterminada.
fuente
192.168.0.*)
, no la externa expuesta a Internet.netstat -nr | grep default
?Solo para el registro, puede hacer un script bash con el siguiente contenido que le proporciona su dirección IP externa
fuente
wget
no forma parte de macOS y debe instalarse desde una fuente que no sea de Apple.curl -s http://ipecho.net/plain; echo