Korzystam z polecenia ip link
w systemie Linux. Teraz chcę go w systemie Mac OS X, ale terminal Mac OS X tego nie ma ip
. Czego powinienem użyć zamiast tego?
Korzystam z polecenia ip link
w systemie Linux. Teraz chcę go w systemie Mac OS X, ale terminal Mac OS X tego nie ma ip
. Czego powinienem użyć zamiast tego?
Odpowiedzi:
Możesz użyć brew
do instalacji iproute2mac
. W rzeczywistości jest to opakowanie Pythona, które zapewnia bardzo podobny interfejs API, który prawdopodobnie okaże się bardzo znajomy dla ip
narzędzia zawartego iproute2
w systemie Linux.
$ 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
Po zainstalowaniu otrzymasz narzędzie wiersza polecenia, które do wszystkich zamierzonych celów naśladuje ip
polecenie w systemie 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.
Pokaż adresy IP w interfejsie 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
Pokaż szczegóły dotyczące linku 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
Użyj normalnego polecenia dla systemów UNIX, takich jak: ifconfig
.
(Linux używa również ifconfig, ale niektóre narzędzia mają nowsze wersje. ip
Jest jednym z tych, które pewnego dnia zastąpią stary ifconfig.)
vconfig add n0 42
(skonfiguruj VLAN 42 dla interfejsu sieciowego EN0), a następnie coś w tym rodzaju ifconfig en0.5 1.2.3.3 netmask 255.255.128.0 broadcast 1.2.3.255 up
.
ifconfig
wypisuje wiele niepotrzebnych linii. Jeśli IP jest wszystkim, czego potrzebujesz, użyj ifconfig | grep inet
zamiast tego.
Istnieje prostszy sposób bez instalowania żadnych narzędzi:
$ which ifconfig
/sbin/ifconfig
$ ifconfig en0 | grep inet | grep -v inet6 | cut -d ' ' -f2
10.16.45.123