¿Cómo listar UUIDS de interfaz de red?

2

Me estoy esforzando mucho por encontrar una forma sencilla de obtener todos los UUIDS de la red en mi Mac para poder hacer un poco de magia plástica.

¿Hay un comando para hacer tal cosa?

Si busco en la lista, encontraré una instancia "Orden de servicio"

   ServiceOrder = Array {
         2AF2313D-AB7E-4FE7-91C3-XXXXXXXXXXXX
         9B976E4D-F7BE-428D-88C2-YYYYYYYYYYYY
         9A26C39B-8BD4-4562-9E0A-ZZZZZZZZZZZZ

Pero, ¿existe una forma más sencilla de escribir un script largo eliminando las partes antes y después?

Todas las computadoras que ejecutan Yosemite.

Final Script - Gracias a @Asmus por proporcionar respuestas para que esto funcione

#!/bin/sh
# Setting value on "SetUDIDSets" to define the "Sets" name as this will be different on each computer
SetUDIDSets=$(/usr/libexec/PlistBuddy -c "print :Sets" /Library/Preferences/SystemConfiguration/preferences.plist | perl -lne 'print $1 if /^    (\S*) =/')

IFS=$'\n'
    # Loops through the list of network services and sets Exclude Simple Hostnames to 1.
    for i in $(/usr/libexec/PlistBuddy -c "print :Sets:$SetUDIDSets:Network:Global:IPv4:ServiceOrder" /Library/Preferences/SystemConfiguration/preferences.plist | awk 'NR>2{ print l} {l=$0}' | perl -pe 's/^\s+//');
    do

# If the setting Exclude Simple Hostnames never has been touched we need to create this
    sudo /usr/libexec/PlistBuddy -c "add :NetworkServices:$i:Proxies:ExcludeSimpleHostnames integer 1" /Library/Preferences/SystemConfiguration/preferences.plist
    sudo /usr/libexec/PlistBuddy -c "set :NetworkServices:$i:Proxies:ExcludeSimpleHostnames 1" /Library/Preferences/SystemConfiguration/preferences.plist

    echo "Exclude Simple Hostnames is now set for $i" 

    done

unset IFS
defaults read /Library/Preferences/SystemConfiguration/preferences.plist
echo "We're done!"
    
pregunta vrklgn 03.03.2015 - 17:06

1 respuesta

2

En primer lugar, para obtener los UUID de sus conjuntos de red, use PlistBuddy y perl:

 /usr/libexec/PlistBuddy -c "print :Sets" /Library/Preferences/SystemConfiguration/preferences.plist | perl -lne 'print $1 if /^    (\S*) =/'

esto debería devolver los ID de los conjuntos de red. Para cada conjunto puedes obtener el nombre con

/usr/libexec/PlistBuddy -c "print :Sets:698F419D-326E-45E3-8BE2-B0742334DD62:UserDefinedName" /Library/Preferences/SystemConfiguration/preferences.plist 

donde, por supuesto, tienes que cambiar el UUID en consecuencia. Ahora, puede imprimir el ServiceOrder con:

/usr/libexec/PlistBuddy -c "print :Sets:698F419D-326E-45E3-8BE2-B0742334DD62:Network:Global:IPv4:ServiceOrder" /Library/Preferences/SystemConfiguration/preferences.plist

Si desea leer el valor de "ExcludeSimpleHostnames", debería poder usar

/usr/libexec/PlistBuddy -c "print :NetworkServices:69F7441B-BA1E-4DC3-B7DA-8D6302986F20:Proxies:ExcludeSimpleHostnames" /Library/Preferences/SystemConfiguration/preferences.plist 

mientras que, por supuesto, reemplaza este UUID con uno válido de "ServiceOrder".

Actualización:

no te pierdas que también puedes establecer valores con PlistBuddy:

/usr/libexec/PlistBuddy -c "Set :NetworkServices:$serviceid:Proxies:ExcludeSimpleHostnames 1" /Library/Preferences/SystemConfiguration/preferences.plist
    
respondido por el Asmus 03.03.2015 - 21:20

Lea otras preguntas en las etiquetas