Я використовую команду 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