Эквивалент ethtool для OS X Lion

16

Кроме ifconfig, есть ли приложение / скрипт для OS X Lion, которое производит вывод / информацию, аналогичные ethtool ?

В частности, я хотел бы иметь возможность запросить следующее:

  • информация о водителе
  • онлайн / оффлайн
  • скорость
  • дуплекс

Вывод из ethtool выглядит следующим образом:

ajc@ajc-3] sudo ethtool eth0|grep Duplex                                                                                                                                                    ~
    Duplex: Full
ajc@ajc-3] sudo ethtool eth0|grep Speed                                                                                                                                                     ~
    Speed: 100Mb/s
ajc@ajc-3] sudo ethtool eth0|grep Link                                                                                                                                                      ~
    Link detected: yes
ajc@ajc-3] sudo ethtool -i eth0                                                                                                                                                             ~
driver: pcnet32
version: 1.32
firmware-version: 
bus-info: 0000:00:03.0
AJ.
источник
1
Информация о функциях, которые вы ищете, будет полезна. Не заставляйте нас проводить исследования - помогите нам помочь вам. Никто не должен заботиться об ответе на ваш вопрос больше, чем вы
jaberg
2
По вашему предложению предоставлены подробности.
AJ.

Ответы:

14

Моими основными инструментами для чтения деталей OSX на оборудовании являются system_profilerи ioreg. Для деталей сетевого интерфейса, ifconfigэто лучшая ставка. Первые два покажут вам пути подключения для аппаратного обеспечения, а также информацию о программном драйвере. В вашем примере - медиа и статус предоставляют большинство деталей, которые вы перечислили.

mac:~ me$ ifconfig en0 

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
    ether 00:1b:63:a8:33:33 
    inet6 fe80::21b:63ff:fea8:3333%en0 prefixlen 64 scopeid 0x4 
    inet 172.16.1.8 netmask 0xffffff00 broadcast 172.16.1.255
    media: autoselect (100baseTX <full-duplex,flow-control>)
    status: active

mac:~ me$ system_profiler|awk '/^Ethernet Cards/{c=15;next}c-->0'

        ethernet:

          Type: Ethernet Controller
          Bus: PCI
          Vendor ID: 0x10de
          Device ID: 0x0ab0
          Subsystem Vendor ID: 0x10de
          Subsystem ID: 0xcb79
          Revision ID: 0x00b1
          BSD name: en0
          Kext name: nvenet.kext
          Location: /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/nvenet.kext
          Version: 2.0.17

В вашем случае вы используете Duplex, Speed ​​и Link, а на оборудовании Mac вы можете получить все эти данные ifconfig en0 | egrep [media|status]по желанию.

bmike
источник
Я проверил обе эти команды, и они, кажется, исследуют обширную общесистемную информацию. Я предпочел бы избежать этого, если это возможно ... Интересно, есть ли что-то, ориентированное на работу в сети?
AJ.
2
Я не согласен с этим комментарием, вы можете легко повторить предложенный вывод, ethtoolпросто добавив оператор grep так же, как вы это сделали. ifconfig en0 | grep Media:предоставляет те же данные, что и первые 3 из ваших выходов ethtool в одной команде и без какой-либо посторонней информации.
Stuff
Единственное оставшееся различие заключается в том, что в macs-списке выполняется автоматический выбор и согласованная скорость соединения, а не просто указывается только скорость соединения. Трубная продукция в awk и cut может помочь в этом.
bmike
@stuffe - «две команды», на которые ссылается мой комментарий, были system_profiler и ioreg. Я согласен, что ifconfig менее ресурсоемкий.
AJ.
4

Возможно, networksetup может дать вам некоторую информацию, которую вы ищете:

networksetup -getinfo Ethernet
networksetup -getmedia Ethernet

NETWORKSETUP (8) Руководство администратора системы BSD NETWORKSETUP (8)

NAME networksetup - инструмент настройки параметров сети в Системных настройках.

Но это не совсем тощий и может дать вам меньше информации, чем ifconfig

iolsmit
источник
1
bash-3.2 $ networksetup -getinfo Ethernet Ethernet не является признанным сетевым сервисом. ** Ошибка: параметры были недействительными.
Мона Джалал
3

Я бы смешал ifconfig и networksetup:

Ifconfig

alex@smiley:~|⇒  ifconfig en0 | grep status
status: active

networkstatus

alex@smiley:~|⇒  networksetup -getinfo "Ethernet Adaptor (en0)" 
DHCP Configuration
IP address: 192.168.1.11
Subnet mask: 255.255.255.0
Router: 192.168.1.1
Client ID:  
IPv6: Automatic IPv6 
IP address: none
IPv6 Router: none 
Ethernet Address: 1c:6f:65:98:de:81

Вычеркните те строки, которые вам нужны. Было бы достаточно легко объединить различные строки в простой скрипт, чтобы вывести всю информацию вместе.

Alex
источник
-1

Пожалуйста, измените en0свое имя I / F

$ networksetup -getmedia en0
Current: autoselect
Active: 1000baseT <full-duplex>
kujiy
источник
Добро пожаловать, чтобы спросить другого. Пожалуйста, смотрите Как ответить для подсказок по предоставлению ответов здесь. Эта информация очень похожа на предыдущий ответ. Пожалуйста, отредактируйте существующий ответ, чтобы добавить свою информацию, или объясните, почему ваш ответ существенно отличается или лучше того, который уже был предоставлен. - Из обзора
ФСБ