comando ip en terminal Mac OS X

64

Yo uso el comando ip linken Linux. Ahora lo quiero en Mac OS X, pero el terminal Mac OS X no tiene ip. ¿Qué debo usar en su lugar?

ario
fuente
Creo que si la comunidad Linux quiere que 'ip' reemplace 'ifconfig', sería útil que 'ip' esté disponible tanto en Unix como en Linux.
Scott Skiles

Respuestas:

89

Puedes usar brewpara instalar iproute2mac. En realidad, es un contenedor de Python que proporciona una API muy similar que probablemente le resulte muy familiar a la ipherramienta incluida iproute2en Linux.

Instalación

$ brew install iproute2mac
==> Installing iproute2mac from brona/homebrew-iproute2mac
==> Downloading https://github.com/brona/iproute2mac/archive/v1.0.3.zip
######################################################################## 100.0%
🍺  /usr/local/Cellar/iproute2mac/1.0.3: 4 files,  24K, built in 2 seconds

Uso

Una vez instalado, se le dará una herramienta de línea de comandos que, a todos los efectos, imita el ipcomando en Linux.

$ ip
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip -V
where  OBJECT := { link | addr | route | neigh }
       OPTIONS := { -4 | -6 }

iproute2mac
Homepage: https://github.com/brona/iproute2mac
This is CLI wrapper for basic network utilities on Mac OS X inspired with iproute2 on Linux systems.
Provided functionality is limited and command output is not fully compatible with iproute2.
For advanced usage use netstat, ifconfig, ndp, arp, route and networksetup directly.

Ejemplos

Mostrar direcciones IP en la interfaz en0.

$ ip addr show en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 54:46:12:fc:45:12
    inet6 fe80::3636:3bff:fecf:1294/64 scopeid 0x4
    inet 192.168.1.5/24 brd 192.168.1.255 en0

Mostrar detalles sobre el enlace en1.

$ ip link show en1
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    options=60<TSO4,TSO6>
    ether 72:00:08:81:d2:10
    media: autoselect <full-duplex>
    status: inactive

Referencias

slm
fuente
6

Utilice el comando normal para sistemas Unix: ifconfig.

(Linux también usa ifconfig, pero algunas de las herramientas tienen versiones más nuevas. ipEs una de ellas que algún día reemplazará al viejo ifconfig).

Hennes
fuente
¿Cómo podría instalar este comando ip en Mac OS? ¡Quiero alguna característica como agregar MAC-VLAN!
Aria
No estoy seguro de que puedas. El mundo entero (bueno, excepto las ventanas que usan ipconfig y algunos linux modernos que usan tanto ip como ifconfig) usa ifconfig. Esto incluye OS X. No tengo mac para probar, pero miraría los comandos vconfig add n0 42(configurar VLAN 42 para la interfaz de red EN0) seguido de algo así ifconfig en0.5 1.2.3.3 netmask 255.255.128.0 broadcast 1.2.3.255 up.
Hennes
1
ifconfigProduce bastantes líneas innecesarias. Si IP es todo lo que necesita usar ifconfig | grep ineten su lugar.
Akseli Palén
Además, ifconfig está en desuso: google.de/…
oleiade
3

Hay una manera más simple sin instalar ninguna herramienta:

$ which ifconfig
/sbin/ifconfig

$ ifconfig en0 | grep inet | grep -v inet6 | cut -d ' ' -f2
10.16.45.123
Andrei Sura
fuente
0

No hay comando ip en Mac. Obténgalo de la cerveza o use:

ifconfig en0| grep "inet[ ]" | awk '{print $2}'

Puede crear un alias de la ~/.bash_profilesiguiente manera:

alias ip-addr="ifconfig en0| grep \"inet[ ]\" | awk '{print \$2}'"
Loke
fuente