22 votos

¿Compartir internet desde un script de inicio/parada?

Hay una manera para iniciar/detener el uso compartido de internet desde la línea de comandos o tal vez un script de apple?

La cosa es que me mueva alrededor de mi laptop entre el hogar y el trabajo. En un lugar en el que obtener inalámbrica a internet (y por lo tanto tengo que desactivar el uso compartido de internet), y en el otro puedo obtener internet de un cable ethernet y configurar el equipo para compartir internet con otros dispositivos mediante la creación de una pequeña red inalámbrica.

Pero se hace un poco tedioso tener que ir a Preferencias del Sistema y de inicio/detener el uso compartido de internet cada vez que me las ubicaciones de los interruptores, así que me gustaría tener una rápida comando o un script para lanzar y hacer el interruptor en la demanda.

Cualquier sugerencias o ideas?

4voto

Mike Polen Puntos 3173

Una manera de hacer que esto es por GUI scripting-sistema de preferencias no tiene ningún soporte Applescript por defecto.

tell application "System Preferences" to set current pane to pane "com.apple.preferences.sharing"
delay 1
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of row 8 of table 1 of scroll area 1 of group 1 of window "Sharing" -- change to row 10 if you are using anything before Snow Leopard
    delay 1
    if (exists sheet 1 of window "Sharing") then
        click button "Start" of sheet 1 of window "Sharing"
    end if
end tell
ignoring application responses
    tell application "System Preferences" to quit
end ignoring

2voto

Amos Puntos 121

Tomé una señal de respuesta de mankoff y envueltos en un AppleScript. Estoy usando este script de Automator para que fácilmente puedo utilizarlo como un servicio y darle un atajo de teclado.

Toggle compartir Internet:

register_growl()

try
    if isRunning("InternetSharing") then
        do shell script "launchctl unload -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist" with administrator privileges

        if isRunning("InternetSharing") then
            error "Internet Connection Sharing was Not Disabled"
        else
            my growlnote("Success", "Internet Connection Sharing Disabled")
        end if

    else
        do shell script "launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist" with administrator privileges

        if isRunning("InternetSharing") then
            my growlnote("Success", "Internet Connection Sharing Enabled")
        else
            error "Internet Connection Sharing was Not Enabled"
        end if

    end if

on error errMsg
    my growlnote("Error", errMsg)

end try

on isRunning(processName)
    try
        return 0 < length of (do shell script "ps ax | grep -v grep | grep " & processName)
    on error
        return false
    end try
end isRunning

on register_growl()
    try
        tell application "GrowlHelperApp"
            set the notificationsList to {"Success", "Warning", "Error"}
            register as application "Toggle Internet Connection Sharing" all notifications notificationsList default notifications notificationsList icon of application "Sharing"
        end tell
    end try
end register_growl

on growlnote(growltype, str)
    try
        tell application "GrowlHelperApp"
            notify with name growltype title growltype description str application name "Toggle Internet Connection Sharing"
        end tell
    end try
end growlnote

0voto

Dave Penneys Puntos 3064

La forma realmente fácil de hacerlo es combinar @Felipe respuesta con el NetworkLocation aplicación. NL puede decir de donde eres, y automáticamente ejecutar un AppleScript cuando detecta que has cambiado de ubicación.

Creo que es software necesario si usted tiene una computadora portátil-de lo contrario, es un pan de PITA para tener siempre a restablecer manualmente varias opciones de configuración cada vez que me cambian de ubicación.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X