26 votos

¿Iniciar/detener el uso compartido de Internet desde un script?

¿Hay alguna forma de iniciar/detener el uso compartido de Internet desde la línea de comandos o tal vez un script de Apple?

El caso es que me muevo con el portátil entre casa y el trabajo. En un sitio tengo internet inalámbrico (y por tanto tengo que desactivar el uso compartido de internet), y en el otro tengo internet desde un cable ethernet y configuro el ordenador para compartir internet con otros dispositivos creando una pequeña red inalámbrica.

Pero se está volviendo un poco tedioso tener que ir a Preferencias del Sistema e iniciar/detener el uso compartido de Internet cada vez que cambio de ubicación, así que me gustaría tener un comando rápido o script para lanzar y hacer el cambio bajo demanda.

¿Algún consejo o idea?

0 votos

Mankoff, cuando ejecuto tu sugerencia: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist parece que se ejecuta bien e incluso el gui de preferencias de compartición se actualiza correctamente cuando se refresca, sin embargo la conexión no funciona. Si ejecuto el comando de nuevo, incluso falla porque piensa que ya está cargado. Además, si ejecuto el comando "top" para ver el proceso que se está ejecutando, no veo "InternetSharing", pero si lo inicio en la guía de preferencias, veo que el proceso "InternetSharing" se está ejecutando y la conexión funciona. Alguna idea de por qué estoy h

0 votos

No estoy seguro de por qué tienes ese comportamiento. Veo "InternetSharing" en la parte superior (o más fácil, ps aux | grep -i internet ).

0 votos

Estoy usando OS X 10.6. Si tienes una versión diferente quizás sea por eso...

0voto

Ligeramente diferente al otro applescript publicado (creo que de mejor manera pero ). Tener opciones a veces puede ayudar.

 tell application "System Preferences"
   activate
   reveal (pane id "com.apple.preferences.sharing")
 end tell

 tell application "System Events"
   tell process "System Preferences"
     try
       click checkbox of row 11 of table 1 of scroll area of group 1 of window "Sharing"

       if checkbox of row 11 of table 1 of scroll area of group 1 of window "Sharing" is equal to 1 then
         repeat until sheet of window 1 exists
           delay 0.5
         end repeat
       end if

       if (sheet of window 1 exists) then
         click button "Start" of sheet of window 1
       end if

       tell application "System Preferences" to quit
       activate (display dialog "Internet Sharing preferences sucessfully flipped")

     on error     
       activate
       display dialog "something went wrong in automation but you are probably in the right menu…"
       return false
     end try
   end tell
 end tell

0voto

japa Puntos 1

Modificado uno de los scripts de arriba para activar Compartir Internet en OSX MOJAVE (10.14), funciona:

tell application "System Preferences"
    activate
    reveal (pane id "com.apple.preferences.sharing")
    delay 0.3
    set current pane to pane "com.apple.preferences.sharing"
    delay 0.3
    set localized_window to the localized name of the current pane
    set localized_app to (localized string "System Preferences")
    set localized_ok to {localized string "OK"} -- File sharing
    set localized_start to {localized string "START"} -- Internet sharing
end tell
delay 0.3
tell application "System Events"
    tell process "System Preferences"
        click checkbox 1 of row 7 of table 1 of scroll area 1 of group 1 of window localized_window
        delay 0.2
        select row 8 of table 1 of scroll area 1 of group 1 of window localized_window
        -- change row numbers to the service you want toggled
        if (exists sheet 1 of window localized_window) then
            try
                click button (localized_ok as string) of sheet 1 of window localized_window
            on error
                click button (localized_start as string) of sheet 1 of window localized_window
            end try
        end if
        set sharing_state to the value of item 1 of static text of group 1 of window localized_window
    end tell

    tell application "System Preferences" to quit
    display notification sharing_state with title localized_app
    --  display notification exists since OS 10.9, for older systems use: 
    --  display dialog sharing_state buttons {localized_ok} default button 1 with title localized_app giving up after 1.5
end tell

-2voto

Eikern Puntos 3857
/usr/bin/defaults write /Library/Preferences/SystemConfiguration/com.apple.nat NAT -dict Enabled -int 0

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