Apple - ethtool Equivalent for OS X Lion
My primary tools for reading OSX details on hardware are system_profiler
and ioreg
. For network interface details, ifconfig
is the best bet. The first two will show you connection paths for the hardware as well as software driver information. In your example - media and status provide most of the details you listed.
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
In your case, you are grepping for Duplex, Speed and Link and on Mac hardware you can get all of that data from ifconfig en0 | egrep [media|status]
as desired.
Maybe networksetup can give you some information you're looking for:
networksetup -getinfo Ethernet
networksetup -getmedia Ethernet
NETWORKSETUP(8) BSD System Manager's Manual NETWORKSETUP(8)
NAME networksetup -- configuration tool for network settings in System Preferences.
But it's not really lean and may give you less information than ifconfig
I would mix both ifconfig and 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
Grep out whichever lines from both tools that you want. Would be easy enough to combine the various lines into a simple script to output all the information together.