sh macOS:获取当前活动的网络设备名称,接口,mac

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh macOS:获取当前活动的网络设备名称,接口,mac相关的知识,希望对你有一定的参考价值。

#!/bin/bash

services=$(networksetup -listnetworkserviceorder | grep 'Hardware Port')

while read line; do
    sname=$(echo $line | awk -F  "(, )|(: )|[)]" '{print $2}')
    sdev=$(echo $line | awk -F  "(, )|(: )|[)]" '{print $4}')
    #echo "Current service: $sname, $sdev, $currentservice"
    if [ -n "$sdev" ]; then
        ifout="$(ifconfig $sdev 2>/dev/null)"
        echo "$ifout" | grep 'status: active' > /dev/null 2>&1
        rc="$?"
        if [ "$rc" -eq 0 ]; then
            currentservice="$sname"
            currentdevice="$sdev"
            currentmac=$(echo "$ifout" | awk '/ether/{print $2}')
        fi
    fi
done <<< "$(echo "$services")"

if [ -n "$currentservice" ]; then
    echo $currentservice
    echo $currentdevice
    echo $currentmac
else
    >&2 echo "Could not find current service"
    exit 1
fi

以上是关于sh macOS:获取当前活动的网络设备名称,接口,mac的主要内容,如果未能解决你的问题,请参考以下文章

libpcap:如何获取活动网络接口(Mac OSX)

macOS:从网络设备名称获取设备名

macOS:从网络设备名称获取设备名

从基类获取当前活动名称[重复]

Android 6.0:获取当前活动的包名称[重复]

sh [macOS - 列出OD绑定]列出当前绑定的OD服务器#macOS