Mac OS X 终端下怎么获取当前使用的network service? 例如当前使用的连接服务名是「Wi-Fi」,终端中怎么获取?
如题,在终端中使用networksetup
命令可以对网络服务(network service)进行设置,例如更改DNS等。
手册中有几个选项例如-listnetworkserviceorder
,-listallnetworkservices
可以列出现在所有的network service信息,但是看了一遍没有找到获取当前正在使用的service的方法。
例如当前使用的服务名为「Wi-Fi」,通过什么命令能获取到?
获取所有的network service
实际当前使用的network service
对network service进行操作
现在就是不知道怎么获取当前使用的service。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先要明白一点,不存在什么“当前service”,多个service可以同时是活跃的,用于连接不同的网络,IP包会根据路由表找到合适的interface。
下面说你的问题,
networksetup -listnetworkserviceorder
可以列出每个service对应的interface名字,ifconfig
可以列出每个名字对应的IP地址以及是否活跃/连接等状态,netstat -r
可以列出路由表。有了这些信息,你要做的事情就可以解决了。
Macosx的Preformance并不是封装networksetup命令实现的。所以命令并不能完全达到你要求的结果。
如果是用shell,遍历service,简单的,grep判断-getinfo输出是否带有IP address判断,比如
networksetup getinfo "WI-FI"|grep -c "IP address:\W[1-9]",如果稍微认真点,就获取ip和route,Ping一下。
要是用代码实现,你可以参考下CFNetServices。