在OS X系统偏好设置中,当我点击“网络”时,我会看到“以太网”的绿点,“AirPort”和“FireWire”的红点。这是因为当我通过以太网访问网络和互联网时,我关闭了AirPort和FireWire。
我需要以编程方式确定“系统偏好设置”中显示的这些网络服务中有哪些具有绿点,哪些具有红点。对于以太网和FireWire,显示的状态为“已连接”或“未连接”,对于AirPort,显示的状态为“开启”或“关闭”。也许其他网络服务还有其他状态标签。
我已经选择了'/ Library / Preferences / SystemConfiguration'中的所有plist文件,特别是'preferences.plist'和'NetworkInterfaces.plist'。我可以在那里获得各种信息,例如位置设置,网络服务订单,代理信息(这对我的任务也很重要),但我找不到如何确定给定的网络服务是打开还是关闭 - 相当于显示绿点。
我也尝试过使用系统配置框架,特别是SCNetworkConnectionGetStatus函数,但我得到的都是无效的连接状态。
有谁知道如何实际检索此连接状态信息?
感谢。
答案 0 :(得分:0)
控制面板中的绿色和红色点通常与OSX上ifconfig
命令的输出相关。
通常,它可能因计算机而异,en0
将是以太网端口,en1
是机场。 (至少在我使用的所有Macbook专业人员身上)
看起来您可以使用ifconfig -m来获取有关支持的媒体的信息。
$ ifconfig -m en0 en0: flags=8863 mtu 1500 ether (redacted) media: autoselect status: inactive supported media: media autoselect media 10baseT/UTP mediaopt half-duplex media 10baseT/UTP mediaopt full-duplex media 10baseT/UTP mediaopt full-duplex mediaopt hw-loopback media 10baseT/UTP mediaopt full-duplex mediaopt flow-control media 100baseTX mediaopt half-duplex media 100baseTX mediaopt full-duplex media 100baseTX mediaopt full-duplex mediaopt hw-loopback media 100baseTX mediaopt full-duplex mediaopt flow-control media 1000baseT mediaopt full-duplex media 1000baseT mediaopt full-duplex mediaopt hw-loopback media 1000baseT mediaopt full-duplex mediaopt flow-control media none
看到10xxbaseT通常是以太网的好兆头。
无线似乎没有报告任何支持的媒体。
ifconfig的手册页有大量的信息,但可能有一些系统库以编程方式访问我不知道的信息,但这应该让你开始。