qwe*_*iop 26 command-line osx networking interface
默认情况下ifconfig
会显示所有可用的接口,但如果我只想显示接口active
呢?喜欢,en0
只在下面。
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 14:10:9f:e0:eb:c9
inet6 fe80::1610:9fff:fee0:ebc9%en0 prefixlen 64 scopeid 0x4
inet X.X.X.X netmask 0xffffff00 broadcast 101.6.69.255
nd6 options=1<PERFORMNUD>
media: autoselect
**status: active**
en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 32:00:14:e7:4f:80
media: autoselect <full-duplex>
**status: inactive**
Run Code Online (Sandbox Code Playgroud)
通知ifconfig en0
不会满足,en0
并不总是活跃的 ;)
我正在运行 Mac OS X。
Gav*_*cey 25
要获得所有活动服务的完整描述,请尝试:
ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active'
Run Code Online (Sandbox Code Playgroud)
这个简单的正则表达式应该只过滤掉活动接口及其所有信息。我建议您在 ~/.profile 或 ~/.bash_profile 文件中为此添加一个别名(可能是 ifactive?)
要获取接口名称(对脚本有用),请使用:
ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active' | egrep -o -m 1 '^[^\t:]+'
Run Code Online (Sandbox Code Playgroud)
你必须安装pcregrep才能工作。它位于 pcre 包中的macports上。或者,这应该与 GNU grep 一起使用,grep -Pzo
而不是使用,pcregrep -M -o
但其余部分相同,但我尚未对此进行测试。
小智 5
以下将仅打印那些配置为具有 IP 的接口
ifconfig | grep "inet.*broadcast"
Run Code Online (Sandbox Code Playgroud)