在CLI上确定当前使用的NIC


0

我在虚拟机上做了很多工作,并有几个脚本来帮助我快速配置它们。我可以完全自动化旋转无头虚拟机,除了我需要知道主机的IP以配置VNC的东西。

我使用以下两个命令之一来获取当前的IP地址:

ipconfig getifaddr en1      # For IP address assigned to wireless
ipconfig getifaddr en0      # For IP address assigned to ethernet

问题是我必须告诉我的脚本是否使用en0或en1。我在家里和以太网上使用无线工作,所以我无法做出假设。

我可以用:

ifconfig | grep '192'

并解析生成的行(工作和家庭分配C类地址),但我宁愿不必这样做。

有没有办法从命令行确定哪个NIC当前连接到网络?或者至少是确定主机IP的更好方法?

我的机器使用Mountain Lion,如果那是相关的。


1
我不是专家,但你不能只是ipconfig getifaddr en0用来看看是否连接了电缆。(没有电缆,如果我使用那个命令,我什么也得不回来)
飞行

这实际上是个好主意。如果这是一个答案,如果我在接受另一个人之前看到它,我会接受这个答案作为最简单和最优雅的解决方案。
Cody Poll 2013年

最后对@FLY的评论。
Cody Poll 2013年

不用担心:)我很高兴它有所帮助。您使用我的解决方案还是您接受的解决方案?只是好奇;)
FLY

你的。更简单。@FLY
Cody民意调查

Answers:


1

我认为你的问题是确定“服务订单”。您看到的基本魔力发生在系统偏好设置>网络中,其中排名最高的连接服务排序到顶部。

这篇Mac OS Hints文章讨论了类似的问题和解决方案。


0

怎么样

ifconfig -au|egrep "en\d:"|cut -d: -f1

它将显示处于up状态的任何“en”接口的名称


1
好开始,谢谢。此解决方案的问题是,当我无线连接时,它会同时显示en0和en1。即使没有插入任何东西,en0仍处于启动状态。
Cody Poll 2013年
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.