Я использую команду ip link
в Linux. Теперь я хочу это на Mac OS X, но терминал Mac OS X не имеет ip
. Что я должен использовать вместо этого?
Я использую команду ip link
в Linux. Теперь я хочу это на Mac OS X, но терминал Mac OS X не имеет ip
. Что я должен использовать вместо этого?
Ответы:
Вы можете использовать brew
для установки iproute2mac
. На самом деле это оболочка Python, которая предоставляет очень похожий API, который вы, вероятно, найдете очень знакомым для ip
инструмента, включенного iproute2
в 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
После установки вам будет предоставлен инструмент командной строки, который для любых целей имитирует ip
команду в 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.
Показать IP-адреса на интерфейсе 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
Показать подробности о ссылке 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
Используйте обычную команду для UNIX - подобных системах: ifconfig
.
(Linux также использует ifconfig, но некоторые инструменты имеют более новые версии. ip
Это одна из них, которая однажды заменит старый ifconfig.)
vconfig add n0 42
(настроить VLAN 42 для сетевого интерфейса EN0), а затем что-то вроде ifconfig en0.5 1.2.3.3 netmask 255.255.128.0 broadcast 1.2.3.255 up
.
ifconfig
выводит довольно много ненужных строк. Если IP это все, что вам нужно, используйте ifconfig | grep inet
вместо этого.
Существует более простой способ без установки каких-либо инструментов:
$ which ifconfig
/sbin/ifconfig
$ ifconfig en0 | grep inet | grep -v inet6 | cut -d ' ' -f2
10.16.45.123