等效于OS X Lion的ethtool


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

1
有关您要寻找的功能的信息会有所帮助。不要让我们进行研究,请帮助我们为您提供帮助。没有人比您更关心您问题的答案
jaberg 2012年

2
根据您的建议,提供详细信息。
AJ。

Answers:


14

我用于读取OSX硬件详细信息的主要工具是system_profilerioreg。对于网络接口的详细信息,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

在您的情况下,您正在为“双工”,“速度”和“链接”而烦恼,并且在Mac硬件上,可以ifconfig en0 | egrep [media|status]根据需要从中获取所有数据。


我检查了这两个命令,它们似乎在探索广泛的系统范围的信息。如果可能的话,我宁愿避免...我想知道是否有一些针对网络的东西?
AJ。

2
我不同意此评论,您可以ethtool通过简单地添加grep语句来轻松复制建议的输出,方法与您相同。 ifconfig en0 | grep Media:在单个命令中提供与ethtool输出的前3个相同的详细信息,并且没有任何多余的信息。
塞斯特2012年

剩下的唯一区别是,macs列出了自动选择和协商的链接速度,而不仅仅是报告链接速度。将输出管道输出到awk并进行剪切可以帮助实现这一目标。
bmike

@stuffe-我的评论所引用的“两个命令”是system_profiler和ioreg。我同意ifconfig的资源消耗较少。
AJ。

4

也许networksetup可以为您提供所需的信息:

networksetup -getinfo Ethernet
networksetup -getmedia Ethernet

NETWORKSETUP(8)BSD系统管理员手册NETWORKSETUP(8)

NAME networksetup-系统偏好设置中网络设置的配置工具。

但这并不是真正的精益,它可能比ifconfig提供更少的信息


1
bash-3.2 $ networksetup -getinfo以太网以太网不是公认的网络服务。**错误:参数无效。
蒙娜·贾拉勒

3

我将ifconfig和networksetup混合使用:

ifconfig

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

网络状态

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

从所需的两种工具中提取出任意一行。将各种行组合成一个简单的脚本以将所有信息一起输出将足够容易。


-1

请更改en0为您的i / f名称

$ networksetup -getmedia en0
Current: autoselect
Active: 1000baseT <full-duplex>

欢迎问不同。请参阅“ 如何回答”以获取此处提供答案的提示。此信息与先前的答案非常相似。请编辑现有答案以添加您的信息,或说明您的答案为何与已提供的答案大不相同或更好。-评论
-fsb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.