Odpowiednik ethtool dla OS X Lion

16

Poza ifconfig, czy istnieje aplikacja / skrypt dla OS X Lion, który wytwarza dane wyjściowe / informacje podobne do ethtool ?

W szczególności chciałbym mieć możliwość zapytania o następujące elementy:

  • informacje o kierowcy
  • dostępny niedostępny
  • prędkość
  • dupleks

Wyjście z ethtool wygląda następująco:

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
źródło
1
Pomocne byłyby informacje o funkcjach, których szukasz. Nie zmuszaj nas do prowadzenia badań - pomóż nam Ci pomóc. Nikt nie powinien bardziej przejmować się odpowiedzią na twoje pytanie niż ja
jaberg
2
Zgodnie z twoją sugestią, dostarczone szczegóły.
AJ.

Odpowiedzi:

14

Moje podstawowe narzędzia do odczytu szczegółów OSX na sprzęcie to system_profileri ioreg. Jeśli chodzi o szczegóły interfejsu sieciowego, ifconfigto najlepszy wybór. Pierwsze dwa pokażą ścieżki połączenia dla sprzętu, a także informacje o sterowniku oprogramowania. W twoim przykładzie - media i status zawierają większość wymienionych przez ciebie szczegółów.

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

W twoim przypadku masz ochotę na Duplex, Speed ​​i Link, a na sprzęcie Mac możesz uzyskać wszystkie te dane ifconfig en0 | egrep [media|status]według potrzeb.

bmike
źródło
Sprawdziłem oba te polecenia i wydają się one sprawdzać obszerne informacje o całym systemie. Wolałbym tego uniknąć, jeśli to możliwe ... Zastanawiam się, czy jest coś skoncentrowanego na sieci?
AJ.
2
Nie zgadzam się z tym komentarzem, możesz łatwo powielić sugerowane wyjście, ethtoolpo prostu dodając instrukcję grep w taki sam sposób, jak to zrobiłeś. ifconfig en0 | grep Media:dostarcza te same szczegóły, co pierwsze 3 wyjścia Ethtool w jednym poleceniu i bez żadnych dodatkowych informacji.
farsz
Jedyną różnicą, która pozostaje, jest to, że lista macs automatycznie wybiera listę i wynegocjowana prędkość łącza, a nie tylko zgłaszają tylko szybkość łącza. Rurociągi do awk i cięcia mogą pomóc w razie potrzeby.
bmike
@stuffe - „dwie komendy”, do których odnosi się mój komentarz, to system_profiler i ioreg. Zgadzam się, że ifconfig wymaga mniej zasobów.
AJ.
4

Może networksetup może dostarczyć ci pewnych informacji, których szukasz:

networksetup -getinfo Ethernet
networksetup -getmedia Ethernet

NETWORKSETUP (8) Podręcznik administratora systemu BSD NETWORKSETUP (8)

NAME networksetup - narzędzie do konfiguracji ustawień sieciowych w Preferencjach systemowych.

Ale to nie jest tak szczupły i może dać ci mniej informacji niż ifconfig

iolsmit
źródło
1
bash-3.2 $ networksetup -getinfo Ethernet Ethernet nie jest rozpoznawaną usługą sieciową. ** Błąd: parametry były nieprawidłowe.
Mona Jalal
3

Mieszałbym zarówno ifconfig, jak i networksetup:

ifconfig

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

Status sieci

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

Wybierz dowolne linie z obu narzędzi, które chcesz. Łatwo byłoby połączyć różne wiersze w prosty skrypt, aby uzyskać wszystkie informacje razem.

Alex
źródło
-1

Zmień en0nazwę na i / f

$ networksetup -getmedia en0
Current: autoselect
Active: 1000baseT <full-duplex>
kujiy
źródło
Witamy w Zapytaj inaczej. Proszę zobaczyć Jak odebrać porady na temat udzielania odpowiedzi tutaj. Ta informacja jest bardzo podobna do poprzedniej odpowiedzi. Edytuj istniejącą odpowiedź, aby dodać swoje informacje, lub wyjaśnij, dlaczego twoja odpowiedź jest znacznie inna lub lepsza od już udzielonej. - Z recenzji
fsb