0

在 OS X 系统偏好设置中,当我点击“网络”时,我看到“以太网”旁边有一个绿点,“AirPort”和“火线”旁边有一个红点。这是因为我在通过以太网访问网络和 Internet 时关闭了 AirPort 和 FireWire。

我需要以编程方式确定系统偏好设置中显示的这些网络服务中哪些有绿点,哪些有红点。对于以太网和 FireWire,显示状态为“已连接”或“未连接”,对于 AirPort,显示状态为“打开”或“关闭”。也许其他网络服务有其他状态标签。

我已经挑选了“/Library/Preferences/SystemConfiguration”中的所有 plist 文件,尤其是“preferences.plist”和“NetworkInterfaces.plist”。我可以在那里获得各种信息,例如位置集、网络服务顺序、代理信息(这对我的任务也很重要),但我找不到如何确定给定的网络服务是打开还是关闭——相当于显示绿点。

我也尝试过使用系统配置框架,特别是 SCNetworkConnectionGetStatus 函数,但我得到的只是无效的连接状态。

有谁知道如何实际检索此连接状态信息?

谢谢。

4

1 回答 1

0

控制面板中的绿点和红点通常与ifconfigOSX 上的命令输出相关。

通常,它可能因计算机而异,en0将是以太网端口和en1机场。(至少在我使用的所有 Macbook 专业人士上)

看起来您可以使用 ifconfig -m 来获取有关受支持媒体的信息。

$ ifconfig -m en0
en0:标志=8863 mtu 1500
    乙醚(已编辑)
    媒体:自动选择
    状态:不活动
    支持的媒体:
        媒体自动选择
        媒体 10baseT/UTP mediaopt 半双工
        媒体 10baseT/UTP mediaopt 全双工
        media 10baseT/UTP mediaopt 全双工 mediaopt hw-loopback
        media 10baseT/UTP mediaopt 全双工 mediaopt 流量控制
        媒体 100baseTX mediaopt 半双工
        媒体 100baseTX mediaopt 全双工
        媒体 100baseTX mediaopt 全双工 mediaopt 硬件环回
        media 100baseTX mediaopt 全双工 mediaopt 流量控制
        媒体 1000baseT mediaopt 全双工
        media 1000baseT mediaopt 全双工 mediaopt hw-loopback
        media 1000baseT mediaopt 全双工 mediaopt 流量控制
        媒体无

看到 10xxbaseT 通常是一个好兆头,它是以太网。

无线似乎没有报告任何支持的媒体。

ifconfig 的手册页包含大量信息,但可能有一些系统库可用于以编程方式访问这些我不知道的信息,但这应该可以帮助您入门。

于 2010-06-16T17:52:18.923 回答