ip Befehl im Mac OS X Terminal

64

Ich benutze den Befehl ip linkin Linux. Jetzt möchte ich es auf Mac OS X, aber das Mac OS X-Terminal hat es nicht ip. Was soll ich stattdessen verwenden?

arisch
quelle
Ich denke, wenn die Linux-Community möchte, dass 'ip' 'ifconfig' ersetzt, wäre es hilfreich, wenn 'ip' sowohl unter Unix als auch unter Linux verfügbar ist.
Scott Skiles

Antworten:

89

Sie können brewzum Installieren verwenden iproute2mac. Tatsächlich handelt es sich um einen Python-Wrapper, der eine sehr ähnliche API bietet, die Sie wahrscheinlich ipmit dem iproute2in Linux enthaltenen Tool sehr gut kennen .

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

Verwendungszweck

Nach der Installation erhalten Sie ein Befehlszeilentool, das in jeder Hinsicht den ipBefehl unter Linux nachahmt .

$ 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.

Beispiele

IP-Adressen auf der Schnittstelle en0 anzeigen.

$ 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

Details zu Link en1 anzeigen.

$ 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

Verweise

slm
quelle
6

Verwenden Sie den normalen Befehl für Unix - ähnlichen Systemen: ifconfig.

(Linux verwendet auch ifconfig, aber einige der Tools haben neuere Versionen. ipEines dieser Tools wird eines Tages das alte ifconfig ersetzen.)

Hennes
quelle
Wie kann ich diesen ip-Befehl unter Mac OS installieren? Ich möchte ein Feature wie MAC-VLAN hinzufügen!
Aryan
Ich bin mir nicht sicher, ob du kannst. Die ganze Welt (nun, mit Ausnahme von Windows, das ipconfig verwendet, und einigen modernen Linux-Betriebssystemen, die sowohl ip als auch ifconfig verwenden) verwendet ifconfig. Dies schließt OS X ein. Ich habe keinen Mac zum Testen, aber ich würde mir die Befehle ansehen vconfig add n0 42(VLAN 42 für die Netzwerkschnittstelle EN0 konfigurieren), gefolgt von so etwas wie ifconfig en0.5 1.2.3.3 netmask 255.255.128.0 broadcast 1.2.3.255 up.
Hennes
1
ifconfiggibt ziemlich viele unnötige Zeilen aus. Wenn IP alles ist, was Sie brauchen, verwenden Sie ifconfig | grep inetstattdessen.
Akseli Palén
Auch ifconfig ist veraltet: google.de/…
oleiade
3

Es gibt einen einfacheren Weg, ohne irgendwelche Werkzeuge zu installieren:

$ which ifconfig
/sbin/ifconfig

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

Es gibt keinen IP-Befehl in Mac. Holen Sie es von brauen oder verwenden Sie:

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

Sie können einen Alias ~/.bash_profilewie folgt erstellen :

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