Commande ip dans un terminal Mac OS X

64

J'utilise la commande ip linksous Linux. Maintenant, je le veux sur Mac OS X, mais le terminal Mac OS X n'en a pas ip. Que devrais-je utiliser à la place?

aryen
la source
Je pense que si la communauté Linux veut que "ip" remplace "ifconfig", il serait utile que "ip" soit disponible sous Unix et Linux.
Scott Skiles le

Réponses:

89

Vous pouvez utiliser brewpour installer iproute2mac. Il s'agit en fait d'un wrapper Python qui fournit une API très similaire, que vous trouverez probablement très familier avec l' ipoutil inclus avec iproute2Linux.

Installation

$ 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

Usage

Une fois installé, vous recevrez un outil de ligne de commande qui, à toutes fins utiles, imite la ipcommande sous 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.

Exemples

Afficher les adresses IP sur l'interface 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

Afficher les détails sur le lien 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

Références

slm
la source
6

Utilisez la commande normale pour les systèmes unix comme: ifconfig.

(Linux utilise également ifconfig, mais certains outils ont des versions plus récentes. ipC’est l’une de celles-ci qui remplacera un jour l’ancien ifconfig.)

Hennes
la source
Comment puis-je installer cette commande ip sur Mac OS? Je veux des fonctionnalités comme ajouter MAC-VLAN!
Aryenne
Je ne suis pas sûr que vous puissiez. Le monde entier (sauf Windows qui utilise ipconfig et certains linux modernes qui utilisent à la fois ip et ifconfig) utilise ifconfig. Cela inclut OS X. Je n'ai pas de Mac à tester, mais je regarderais les commandes vconfig add n0 42(configurez le VLAN 42 pour l'interface réseau EN0) suivies de quelque chose comme ifconfig en0.5 1.2.3.3 netmask 255.255.128.0 broadcast 1.2.3.255 up.
Hennes
1
ifconfiggénère pas mal de lignes inutiles. Si IP est tout ce dont vous avez besoin, utilisez ifconfig | grep inetplutôt.
Akseli Palén
Aussi, ifconfig est déconseillé: google.de/…
oleiade le
3

Il existe un moyen plus simple sans installer aucun outil:

$ which ifconfig
/sbin/ifconfig

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

Il n'y a pas de commande ip sur Mac. Obtenez-le de la bière ou utilisez:

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

Vous pouvez créer un alias ~/.bash_profilecomme suit:

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