2010-11-13 5 views
1

Je voulais automatiser le processus de modification de mon adresse IP en utilisant apple-script. J'ai donc écrit un script qui le fera automatiquement, mais j'ai des problèmes pour configurer l'adresse IP.Adresse IP de paramétrage Applescript

set ipAddress to "192.168.110.48" 
tell application "System Preferences" 
activate 
set current pane to pane id "com.apple.preference.network" 
end tell 
tell application "System Events" 
tell process "System Preferences" 
    click checkbox "Click the lock to make changes." of window "Network" 
    tell application "System Events" to keystroke "p" 
    tell application "System Events" to keystroke "a" 
    tell application "System Events" to keystroke "s" 
    tell application "System Events" to keystroke "s" 
    tell application "System Events" to keystroke "w" 
    tell application "System Events" to keystroke "o" 
    tell application "System Events" to keystroke return 
    click button 11 of window "Network" 
    tell window "Network" 
    tell sheet 1 
    tell tab group 1 
    click radio button "TCP/IP" 


    set contents of text field 2 to ipAddress 



    end tell 
    end tell 
    end tell 



end tell 
end tell 

Tout exécute bien, sauf pour cette déclaration

"set contents of text field 2 to ipAddress"

Je reçois l'erreur suivante:

error "System Events got an error: Can’t set contents of text field 2 of tab group 1 of sheet 1 of window \"Network\" of process \"System Preferences\" to \"192.168.110.48\"." number -10006 from contents of text field 2 of tab group 1 of sheet 1 of window "Network" of process "System Preferences" I checked the UI elements using UIBrowser so i am sure that i am using the correct elements. What is causing the problem? and Also can u tell a better way to write the same thing?

Répondre

1

Une autre solution pour changer les adresses IP serait d'utiliser les emplacements réseau disposent de le volet Réseau et utilisez des emplacements prédéfinis.

Si vous cliquez sur le volet Réseau dans les Préférences Système en haut, vous verrez un menu déroulant intitulé Emplacement. Cliquez dessus et choisissez Modifier les emplacements ...

Ensuite, vous pouvez créer un nouvel emplacement et configurer une interface que ce soit Ethernet, aéroport, firewire, carte 3G, etc. Vous pouvez avoir plusieurs emplacements pour la même interface. Ainsi, vous pourriez avoir un emplacement Ethernet avec un IP de 192.168.2.2 et alors vous pourriez avoir un autre ensemble à 192.168.2.3 et ainsi de suite ...

Une fois que vous avez tous les nouveaux endroits créés et étiquetés alors vous pouvez utilisez AppleScript pour basculer entre eux.

Pour obtenir votre emplacement réseau actuel AppleScript utiliser le code suivant:

set currentLocation to do shell script "networksetup -getcurrentlocation" 

Pour sélectionner un nouvel emplacement, utilisez le code AppleScript suivant:

set newLocationName to "whatever location you want to choose" 
do shell script "scselect " & newLocationName with administrator privileges 

En utilisant la méthode ci-dessus, vous pouvez créer de nombreux emplacements réseau prédéfinis et basculer entre eux facilement avec votre AppleScript. En outre, vous pouvez créer une fonction aléatoire qui sera sélectionnée de manière aléatoire à partir d'une liste AppleScript contenant tous vos emplacements.

0

Utilisez le script shell networksetup à régler manuellement votre adresse IP:

do shell script "networksetup -setmanual Ethernet 192.168.110.48 
255.55.255.0 192.168.110.1 password YOURPASSWORD with administrator privileges" 

Pour revenir à DHCP:

do shell script "networksetup -setdhcp Ethernet YOURPASSWORD 
with administrator privileges" 

Bien sûr, vous pouvez manipuler la chaîne à utiliser des variables et changer "Ethernet" à n'importe quelle interface (comme le Wi-Fi).